JavaScript próbáld ... fogd ... végül Nyilatkozat

Ebben az oktatóanyagban megismerheti a try … catch… végül utasításokat, amelyek példák segítségével kezelik a kivételeket a JavaScript-ben.

A try, catchés a finallyblokkok a kivételek kezelésére szolgálnak (egy hiba típusa). Mielőtt megismerné őket, ismernie kell a programozás hibáit.

A hibák típusai

A programozás során kétféle hiba lehet a kódban:

Szintaxis hiba : Hiba a szintaxisban. Például, ha írsz consol.log('your result');, a fenti program szintaktikai hibát dob. A helyesírási consolehiba a fenti kódban.

Futásidejű hiba : Ez a típusú hiba a program futtatása során jelentkezik. Például
érvénytelen függvény vagy változó meghívása.

Ezeket a futás közben fellépő hibákat kivételeknek nevezzük . Most nézzük meg, hogyan tudja kezelni ezeket a kivételeket.

JavaScript try… catch Statement

Az try… catchutasítás a kivételek kezelésére szolgál. Szintaxisa:

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

A fő kód a tryblokkon belül található. A tryblokk végrehajtása közben , ha bármilyen hiba lép fel, akkor a catchblokkra megy . A catchblokk a fogási utasítások szerint kezeli a hibákat.

Ha nem történik hiba, a tryblokk belsejében lévő kód végrehajtásra kerül, és a catchblokk kihagyásra kerül.

1. példa: A nem bejelentett változó megjelenítése

 // 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); )

Kimenet

 NaN Hibás hiba Hibaüzenet: ReferenceError: a nincs meghatározva

A fenti programban egy változó nincs meghatározva. Amikor megpróbálja kinyomtatni a változót, a program hibát dob. Ezt a hibát elkapta a catchblokk.

JavaScript próbáld meg … fogd meg … végül nyilatkozat

Az try… catch… finallyutasítással kivételek kezelésére is használható . A finallyblokk akkor is végrehajtódik, ha a kód sikeresen fut, vagy ha hiba lép fel.

A try… catch… finallyblokk szintaxisa :

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

2. példa: próbáld meg … elkapni … végül példa

 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'); )

Kimenet

 NaN Hibás hiba Hibaüzenet: ReferenceError: a nincs meghatározva Végül minden alkalommal végrehajtódik

A fenti programban hiba lép fel, és ezt a hibát elkapja a catchblokk. A finallyblokk bármilyen helyzetben végrehajtásra kerül (ha a program sikeresen fut, vagy ha hiba lép fel).

Megjegyzés : Használnia kell a catchvagy az finallyutasítás utáni tryutasítást. Ellenkező esetben a program hibát dob ​​Uncaught SyntaxError: Hiányzik a fogás, vagy végül próbálkozás után.

JavaScript próbáld meg … fogd be a setTimeout-ban

Nem try… catchfogja elkapni a kivételt, ha " időzített " kódban történt , mint például a setTimeout (). Például,

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

A fentiek try… catchnem fognak működni, mert a motor már elhagyta a try… catchkonstrukciót, és a függvény később végrehajtásra kerül.

A try… catchblokknak a függvényen belül kell lennie ahhoz, hogy kivételt kapjon egy időzített függvényen belül. Például,

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

Az throwutasítással együtt try… catchhasználhatja a felhasználó által definiált kivételeket is. Például egy bizonyos számot elosztunk 0-val . Ha Infinityhibának akarja tekinteni a programot, akkor dobhat egy felhasználó által definiált kivételt az throwutasítás segítségével az adott feltétel kezelésére.

A következő oktatóanyagban megismerheti a JavaScript dobási nyilatkozatot.

érdekes cikkek...