JavaScript vyzkoušet ... chytit ... konečně prohlášení

V tomto tutoriálu se dozvíte o příkazech try… catch… nakonec ke zpracování výjimek v JavaScriptu pomocí příkladů.

Tyto try, catcha finallybloky jsou používány pro zpracování výjimek (typ chyby). Než se o nich dozvíte, musíte vědět o typech chyb v programování.

Druhy chyb

V programování mohou v kódu být dva typy chyb:

Chyba syntaxe : Chyba v syntaxi. Například pokud píšete consol.log('your result');, výše uvedený program vyvolá syntaktickou chybu. Pravopis consoleje chybou ve výše uvedeném kódu.

Chyba za běhu : K tomuto typu chyby dochází během provádění programu. Například
volání neplatné funkce nebo proměnné.

Tyto chyby, ke kterým dochází za běhu, se nazývají výjimky . Nyní se podívejme, jak tyto výjimky zvládnete.

Zkuste JavaScript … chytit prohlášení

Příkaz try… catchse používá ke zpracování výjimek. Jeho syntaxe je:

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

Hlavní kód je uvnitř trybloku. Při provádění trybloku, pokud dojde k nějaké chybě, přejde do catchbloku. catchBlok zpracovává chyby jako na prohlášení o úlovku.

Pokud nedojde k žádné chybě, provede se kód uvnitř trybloku a catchblok se přeskočí.

Příklad 1: Zobrazit nedeklarovanou proměnnou

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

Výstup

 NaN Došlo k chybě Chybová zpráva: ReferenceError: a není definována

Ve výše uvedeném programu není proměnná definována. Při pokusu o tisk proměnné program vyvolá chybu. Tato chyba je zachycena v catchbloku.

Zkuste JavaScript … chytit … konečně Prohlášení

Příkaz můžete také použít try… catch… finallyke zpracování výjimek. finallyBlok provádí jak při kód spustí úspěšně, nebo pokud dojde k chybě.

Syntaxe try… catch… finallybloku je:

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

Příklad 2: zkuste… chytit… konečně Příklad

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

Výstup

 NaN Byla chycena chyba Chybová zpráva: ReferenceError: a není definována Nakonec se provede pokaždé

Ve výše uvedeném programu dojde k chybě a tato chyba je catchblokem zachycena . finallyBlok spustit v jakékoliv situaci (pokud je program spuštěn úspěšně, nebo pokud dojde k chybě).

Poznámka : Musíte použít příkaz catchnebo finallyprohlášení za trypříkazem. V opačném případě program vyvolá chybu Uncaught SyntaxError: Missing catch nebo nakonec po vyzkoušení.

Vyzkoušejte JavaScript … chyťte v setTimeout

try… catchNebude zachytit výjimku, pokud se to stalo „ načasováno “ kódu, jako v setTimeout (). Například,

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

Výše uvedené try… catchnebude fungovat, protože motor již opustil try… catchkonstrukci a funkce se provede později.

try… catchBlok musí být uvnitř této funkce zachytit výjimku uvnitř časované funkce. Například,

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

Můžete také použít throwpříkaz s try… catchpříkazem k použití uživatelem definovaných výjimek. Například určité číslo se vydělí 0 . Pokud chcete program považovat Infinityza chybu, můžete pomocí throwpříkazu ke zpracování této podmínky vyvolat uživatelem definovanou výjimku .

V následujícím kurzu se dozvíte o příkazu JavaScript throw.

Zajímavé články...