JavaScript prøv ... fang ... endelig erklæring

I denne vejledning lærer du om forsøget … fang … endelig udsagn om at håndtere undtagelser i JavaScript ved hjælp af eksempler.

De try, catchog finallyblokkene bruges til undtagelser (en type af fejl). Inden du lærer om dem, skal du vide om typerne af fejl i programmeringen.

Typer af fejl

Ved programmering kan der være to typer fejl i koden:

Syntaksfejl : Fejl i syntaksen. For eksempel, hvis du skriver consol.log('your result');, kaster ovenstående program en syntaksfejl. Stavemåden for consoleer en fejl i ovenstående kode.

Runtime Error : Denne type fejl opstår under udførelsen af ​​programmet. For eksempel at
kalde en ugyldig funktion eller en variabel.

Disse fejl, der opstår under kørsel, kaldes undtagelser . Lad os nu se, hvordan du kan håndtere disse undtagelser.

JavaScript prøv … fange erklæring

Den try… catchsætning bruges til at håndtere undtagelser. Dens syntaks er:

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

Hovedkoden er inde i tryblokken. tryHvis der opstår en fejl under blokering, går den til catchblokken. Den catchblok håndterer fejlene som pr fangstopgoerelser.

Hvis der ikke opstår nogen fejl, tryudføres koden inde i blokken, og catchblokken springes over.

Eksempel 1: Vis ikke-deklareret variabel

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

Produktion

 NaN En fejl fanget Fejlmeddelelse: ReferenceError: a er ikke defineret

I ovenstående program er en variabel ikke defineret. Når du prøver at udskrive en variabel, kaster programmet en fejl. Denne fejl er fanget i catchblokken.

JavaScript prøv … fang … endelig erklæring

Du kan også bruge try… catch… finallyerklæringen til at håndtere undtagelser. Den finallyblok udfører både når koden kører med succes, eller hvis der opstår en fejl.

Syntaksen for try… catch… finallyblokken er:

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

Eksempel 2: prøv … fang … endelig eksempel

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

Produktion

 NaN En fejl fanget Fejlmeddelelse: ReferenceError: a er ikke defineret Endelig udføres hver gang

I ovenstående program opstår der en fejl, og denne fejl fanges af catchblokken. Den finallyblok vil udføre i enhver situation (hvis programmet kører med succes, eller hvis der opstår en fejl).

Bemærk : Du skal bruge catcheller finallyudsagn efter tryerklæring. Ellers kaster programmet en fejl Uncaught SyntaxError: Manglende fangst eller endelig efter forsøg.

JavaScript prøv … fang i setTimeout

Den try… catchfanger ikke undtagelsen, hvis den skete i " tidsbestemt " kode, som i setTimeout (). For eksempel,

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

Ovenstående try… catchfungerer ikke, fordi motoren allerede har forladt try… catchkonstruktionen, og funktionen udføres senere.

Den try… catchblok skal være inde denne funktion til at fange en undtagelse inde i en tidsstyret funktion. For eksempel,

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

Du kan også bruge throwudsagnet med try… catcherklæringen til at bruge brugerdefinerede undtagelser. For eksempel divideres et bestemt antal med 0 . Hvis du vil overveje Infinitysom en fejl i programmet, kan du kaste en brugerdefineret undtagelse ved hjælp af throwudsagnet til at håndtere denne tilstand.

Du vil lære om JavaScript-udsagnet i næste tutorial.

Interessante artikler...