V tomto tutoriáli sa dozviete o príkazoch try… catch… konečne na spracovanie výnimiek v JavaScripte pomocou príkladov.
Tieto try, catcha finallybloky sú používané pre spracovanie výnimiek (typ chyby). Predtým, ako sa o nich dozviete, musíte vedieť o druhoch chýb v programovaní.
Typy chýb
V programovaní môžu byť v kóde dva typy chýb:
Chyba syntaxe : Chyba v syntaxi. Napríklad, ak píšete consol.log('your result');, vyššie uvedený program spôsobí syntaktickú chybu. Pravopis consoleje chybou vo vyššie uvedenom kóde.
Chyba za behu : Tento typ chyby sa vyskytuje počas vykonávania programu. Napríklad
volanie neplatnej funkcie alebo premennej.
Tieto chyby, ktoré sa vyskytnú počas behu modulu, sa nazývajú výnimky . Teraz sa pozrime, ako zvládnete tieto výnimky.
Skúste JavaScript … vyhlásenie o chybe
Príkaz try… catchsa používa na spracovanie výnimiek. Jeho syntax je:
try ( // body of try ) catch(error) ( // body of catch )
Hlavný kód je vo vnútri trybloku. Ak sa počas vykonávania trybloku vyskytne akákoľvek chyba, prejde do catchbloku. catchBlok spracováva chyby ako na vyhlásenie o úlovku.
Pokiaľ nedôjde k chybe, tryvykoná sa kód vo vnútri bloku a catchblok sa preskočí.
Príklad 1: Zobraziť nedeklarovanú premennú
// 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ýkon
NaN Bola zachytená chyba Chybové hlásenie: ReferenceError: a nie je definované
Vo vyššie uvedenom programe nie je premenná definovaná. Pri pokuse o vytlačenie premennej program vyvolá chybu. Táto chyba je zachytená v catchbloku.
Skúste JavaScript … chytiť … konečne vyhlásenie
Príkaz môžete použiť aj try… catch… finallyna spracovanie výnimiek. finallyBlok vykonáva ako pri kód spustí úspešne, alebo ak dôjde k chybe.
Syntax try… catch… finallybloku je:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
Príklad 2: skúste… chytiť… konečne Prí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ýkon
NaN Bola zachytená chyba Chybová správa: ReferenceError: a nie je definovaná Nakoniec sa vykoná zakaždým
Vo vyššie uvedenom programe sa vyskytne chyba a túto chybu zachytí catchblok. finallyBlok spustiť v akejkoľvek situácii (ak je program spustený úspešne, alebo ak dôjde k chybe).
Poznámka : Musíte použiť catchalebo finallypríkaz za tryvýpisom. V opačnom prípade program vyhodí chybu Uncaught SyntaxError: Missing catch alebo konečne po vyskúšaní.
Skúste JavaScript … chytiť v setTimeout
try… catchNebude zachytiť výnimku, ak sa to stalo " načasované " kódu, ako v setTimeout (). Napríklad,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Vyššie uvedené try… catchnebude fungovať, pretože motor už opustil try… catchkonštrukciu a funkcia sa vykoná neskôr.
try… catchBlok musí byť vo vnútri tejto funkcie zachytiť výnimku vnútri časované funkcie. Napríklad,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
Príkaz môžete tiež použiť throws týmto try… catchvyhlásením na použitie používateľom definovaných výnimiek. Napríklad určité číslo sa vydelí 0 . Ak chcete program považovať Infinityza chybu, môžete pomocou throwpríkazu na spracovanie tejto podmienky vyhodiť používateľom definovanú výnimku .
V nasledujúcom návode sa dozviete viac o príkaze JavaScript throw.








