Skúste JavaScript ... chytiť ... konečne Vyhlásenie

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.

Zaujímavé články...