JavaScript prøv ... fang ... endelig uttalelse

I denne opplæringen vil du lære om prøven … fang … endelig uttalelser for å håndtere unntak i JavaScript ved hjelp av eksempler.

De try, catchog finallyblokkene blir brukt til å håndtere unntak (en type av en feil). Før du lærer om dem, må du vite om typene feil i programmeringen.

Typer feil

I programmering kan det være to typer feil i koden:

Syntaksfeil : Feil i syntaksen. Hvis du for eksempel skriver consol.log('your result');, kaster programmet ovenfor en syntaksfeil. Stavemåten consoleer en feil i koden ovenfor.

Runtime Error : Denne typen feil oppstår under kjøringen av programmet. For eksempel å
kalle en ugyldig funksjon eller en variabel.

Disse feilene som oppstår under kjøretiden kalles unntak . La oss nå se hvordan du kan håndtere disse unntakene.

JavaScript prøve … catch Statement

Den try… catchsetningen brukes til å håndtere unntakene. Dens syntaks er:

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

Hovedkoden er inne i tryblokken. tryHvis det oppstår feil, går den til catchblokken mens du utfører blokken. Den catchblokken håndterer feilene som per fangst uttalelser.

Hvis det ikke oppstår noen feil, blir koden inne i tryblokken utført, og catchblokken hoppes over.

Eksempel 1: Vis sortvariabel

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

Produksjon

 NaN En feil fanget Feilmelding: ReferenceError: a er ikke definert

I det ovennevnte programmet er ikke en variabel definert. Når du prøver å skrive ut en variabel, viser programmet en feil. Den feilen er fanget i catchblokken.

JavaScript prøve … fang … endelig uttalelse

Du kan også bruke try… catch… finallyuttalelsen til å håndtere unntak. Den finallyblokken utfører både når koden fullført eller hvis det oppstår en feil.

Syntaksen for try… catch… finallyblokken er:

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

Eksempel 2: prøv … fang … til slutt 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'); )

Produksjon

 NaN En feil fanget Feilmelding: ReferenceError: a er ikke definert. Til slutt vil den utføres hver gang

I det ovennevnte programmet oppstår det en feil, og den feilen blir fanget av catchblokken. Den finallyblokken vil utføre i enhver situasjon (hvis programmet kjører vellykket eller hvis det oppstår en feil).

Merk : Du må bruke catcheller finallyuttale etter tryuttalelse. Ellers vil programmet kaste en feil Uncaught SyntaxError: Manglende fangst eller til slutt etter forsøk.

JavaScript prøv … fang i setTimeout

Det try… catchvil ikke fange unntaket hvis det skjedde i " tidsbestemt " kode, som i setTimeout (). For eksempel,

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

Ovennevnte try… catchfungerer ikke fordi motoren allerede har forlatt try… catchkonstruksjonen og funksjonen blir utført senere.

Den try… catchblokken må være inne som funksjon å fange et unntaks inne i et tidsbestemt funksjon. For eksempel,

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

Du kan også bruke throwutsagnet med try… catchutsagnet for å bruke brukerdefinerte unntak. For eksempel er et bestemt tall delt på 0 . Hvis du vil vurdere Infinitysom en feil i programmet, kan du kaste et brukerdefinert unntak ved å bruke throwutsagnet for å håndtere den tilstanden.

Du vil lære om JavaScript-kasterklæringen i neste opplæring.

Interessante artikler...