JavaScript poskusite ... ulov ... končno Izjava

V tej vadnici boste s pomočjo primerov spoznali izjave try… catch … final, ki bodo obvladovale izjeme v JavaScript.

V try, catchin finallybloki se uporabljajo za obdelavo izjem (vrste napake). Preden se naučite zanje, morate vedeti o vrstah napak pri programiranju.

Vrste napak

Pri programiranju sta lahko dve vrsti napak v kodi:

Sintaksna napaka : Napaka v sintaksi. Če na primer pišete consol.log('your result');, zgornji program vrže sintaksno napako. Črkovanje consoleje napaka v zgornji kodi.

Napaka med izvajanjem: Ta vrsta napake se pojavi med izvajanjem programa. Na primer,
klicanje neveljavne funkcije ali spremenljivke.

Te napake, ki se pojavijo med izvajanjem, se imenujejo izjeme . Zdaj pa poglejmo, kako lahko obvladate te izjeme.

JavaScript poskusite … catch izjava

try… catchIzjava se uporablja za obravnavo izjem. Njegova sintaksa je:

 try ( // body of try ) catch(error) ( // body of catch )

Glavna koda je znotraj trybloka. Med izvajanjem trybloka gre v primeru, da pride do napake catch. catchBlok ročaji napak kot na izjave o ulovu.

Če ne pride do napake, se koda znotraj trybloka izvrši in catchblok preskoči.

Primer 1: Prikaži neprijavljeno spremenljivko

 // program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )

Izhod

 NaN Ujeta napaka Sporočilo o napaki: ReferenceError: a ni definirana

V zgornjem programu spremenljivka ni definirana. Ko poskušate spremenljivko natisniti, program prikaže napako. Ta napaka je zajeta v catchbloku.

JavaScript poskusite … ulovite … na koncu Izjava

try… catch… finallyStavek lahko uporabite tudi za obdelavo izjem. finallyBlok izvaja tako, ko se koda izvaja uspešno, ali če pride do napake.

Sintaksa try… catch… finallybloka je:

 try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )

Primer 2: poskusite … ulovite … končno Primer

 const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )

Izhod

 NaN Ujeta napaka Sporočilo o napaki: ReferenceError: a ni definirano Končno se bo izvedlo vsakič

V zgornjem programu pride do napake in to napako ujame catchblok. finallyBlok bo izvrši v vsakem položaju (če se program izvaja uspešno, ali če pride do napake).

Opomba : Uporabiti morate izjavo catchali izjavo. V nasprotnem primeru bo program vrgel napako Uncaught SyntaxError: Manjka ulov ali končno po poskusu.finallytry

Poskusite JavaScript … ulov v setTimeout

try… catchNe bo ulov izjeme, če se je to zgodilo v " potekla " kodo, kot v setTimeout (). Na primer

 try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )

Zgoraj try… catchne bo delovalo, ker je motor že zapustil try… catchkonstrukcijo in se funkcija izvaja pozneje.

try… catchBlok mora biti v tej funkciji ujeti izjemo znotraj časovno funkcijo. Na primer

 setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);

Lahko uporabite tudi throwizjavo z try… catchizjavo, da uporabite uporabniško določene izjeme. Na primer, določeno število je deljeno z 0 . Če želite v programu šteti Infinityza napako, lahko z uporabo throwstavka za obravnavo tega stanja vržete uporabniško določeno izjemo .

Izjavo o metanju JavaScripta boste izvedeli v naslednji vadnici.

Zanimive Članki...