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.








