Javascript je prevodni programski jezik. Tako kot kateri koli drug jezik mora razvijalec ali programer pogosto skrbeti za ravnanje z napakami. Večinoma mora programer ali razvijalec obvladovati napake med dostopom ali dodelitvijo nekaterih podatkov zbirki podatkov. Torej je ravnanje z napakami bistveni del vsakega programskega projekta. Obstajajo tri vrste napak pri programiranju, s katerimi se mora programer ali razvijalec pogosto soočiti.
Napaka v sintaksi - Napaka pri pisanju kode glede na sintakso programskega jezika. Na primer, če manjka podpičje ali ne upošteva konvencije o ustvarjanju in klicanju funkcije.
Logična napaka - Napaka v logični zgradbi. Na primer, izvedba napačne aritmetične operacije, ki ima za posledico napačen izhod.
Napaka med izvajanjem - Med izvajanjem je prišlo do napake. Tako kot klicanje funkcije, ne da bi jo prijavili.
Napaka, ki jo dobimo med izvajanjem, je znana tudi kot izjema. Zelo pomembno je izjemno ravnanje. Ker napak in kod napak ne moremo takoj vrniti. To moramo rešiti. Torej, v tem članku bomo razumeli, kako ravnati z izjemami s pomočjo bloka javascript's try-catch. Naučili se bomo tudi, kako vrniti sporočilo po meri proti napaki in kako uporabiti blok "končno" z blokom try-catch.
Sintaksa
Sintaksa za uporabo bloka try-catch je zelo preprosta in enostavna za uporabo. Preprosto lahko uporabimo blok try-catch, kot je ta
poskusite// koda za poskus ali preizkus
throw // vrzi napako po meri za ulov
ulov (napaka)
// koda po prejemu napake
končno
// koda, ki se v vsakem primeru izvede
V tej sintaksi najprej v blok »poskus« napišemo nekaj vrstic kode za preizkus. Če se ta koda izvede ali uspešno prestane test. Blok "poskus" ne bo vrgel nobene napake v blok "catch" in izvedel blok "končno". V nasprotnem primeru bo vrgel napako v blok “catch”, kjer lahko obravnavamo izjeme glede na dano napako. Napako po meri lahko vržemo tudi v blok »catch« z uporabo ključne besede »throw«. Blok "Končno" bo v vsakem primeru izveden. Bodisi blok »poskusi« vrže katerega koli ali ne. Poskusimo nekaj primerov za boljše razumevanje.
Primeri
Najprej predstaviti preprosto in osnovno delovanje bloka try-catch. Poskušamo poklicati funkcijo, ne da bi jo kje prijavili.
dodatek ()Vsekakor bo v konzolo vrglo napako
Ampak, če ga zdaj poskusimo poklicati v poskusnem bloku
dodatek ()
ulov (napaka)
V konzoli ne bo več prikazal nobene napake, ker v blok catch nismo napisali nobene kode zaradi napake. Tako lahko zdaj spremenimo in utrdimo sporočilo o napaki v bloku catch.
poskusitedodatek ()
ulov (napaka)
konzola.log ("Sporočilo o napaki =>" + napaka)
V konzoli lahko vidimo naše sporočilo po meri proti napaki.
Torej, to je zelo osnovna uporaba bloka try-catch. Zdaj pa se naučimo o metanju napake po meri v poskusni blok.
Vrzi
Recimo, da želimo na podlagi različnih napak med poskusom vrniti drugačno napako po meri. Lahko vržemo napako po meri, da »Opredelitev funkcije ne obstaja." Všečkaj to
poskusitevrzi novo napako ("Opredelitev funkcije ne obstaja")
ulov (napaka)
konzola.log ("Sporočilo o napaki =>" + napaka)
Kot lahko vidite v izhodu, se sporočilo o napaki zdaj spremeni v našo vrženo napako po meri.
ProTip
Recimo, da poskusimo uporabiti ta poskusni ulov za asinhrono funkcijo. Ne bo šlo. Ker bi se motor premaknil v naslednjo vrstico, izvedite zadnji blok in asinhrono funkcijo izvedite pozneje. Če na primer uporabimo funkcijo setTimeout znotraj bloka try-catch.
poskusitesetTimeout (() =>
dodatek ();
, 3000)
ulov (napaka)
konzola.log ("Sporočilo o napaki =>" + napaka)
končno
konzola.dnevnik ("dosežen 'končno' blok")
Opazite, da se najprej izvrši blok "končno", napaka pa se vrže pozneje, če si napako ogledamo. To ni napaka iz bloka catch, je pa izvirna programska napaka, kar pomeni, da se catch block ne izvrši, ker poskus bloka ni našel napake.
Vredu! Zdaj, če želimo, da deluje. Blok try-catch moramo uporabiti znotraj funkcije setTimeout namesto zunaj. Pravi način izvajanja asinhrone funkcije z blokom try-catch bi bil tak.
setTimeout (() =>poskusite
dodatek ();
ulov (napaka)
konzola.log ("Sporočilo o napaki =>" + napaka)
končno
konzola.dnevnik ("dosežen 'končno' blok")
, 3000)
V izhodu lahko opazite, da po 3 sekundi zakasnitve zaradi funkcije setTimeout. Najprej dobimo sporočilo o napaki iz bloka catch, nato pa se izvrši blok "končno".
Zaključek
V tem članku smo se naučili korak za korakom v bloku poskusiti ulov v javascriptu na tako preprost in globok način, da bi ga lahko vsak začetnik po branju tega članka uporabil kjerkoli potrebuje. Torej, nadaljujte z učenjem in pridobivanjem izkušenj v javascriptu z linuxhintom.com. Hvala vam!