JavaScript probeer ... vangen ... eindelijk Statement

In deze tutorial leer je met behulp van voorbeelden over de try… catch… final-statements om uitzonderingen in JavaScript af te handelen.

De blokken try, catchen finallyworden gebruikt om uitzonderingen af ​​te handelen (een soort fout). Voordat u er meer over leert, moet u weten welke soorten fouten bij het programmeren zijn.

Soorten fouten

Bij het programmeren kunnen er twee soorten fouten in de code voorkomen:

Syntaxisfout : fout in de syntaxis. Als u bijvoorbeeld schrijft consol.log('your result');, genereert het bovenstaande programma een syntaxisfout. De spelling van consoleis een fout in de bovenstaande code.

Runtime-fout : dit type fout treedt op tijdens de uitvoering van het programma. Bijvoorbeeld het
aanroepen van een ongeldige functie of een variabele.

Deze fouten die tijdens runtime optreden, worden uitzonderingen genoemd . Laten we nu eens kijken hoe u met deze uitzonderingen kunt omgaan.

JavaScript try … catch Statement

De try… catchinstructie wordt gebruikt om de uitzonderingen af ​​te handelen. De syntaxis is:

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

De hoofdcode bevindt zich in het tryblok. Als er tijdens het uitvoeren van het tryblok een fout optreedt, gaat het naar het catchblok. Het catchblok behandelt de fouten volgens de catch-instructies.

Als er geen fout optreedt, wordt de code in het tryblok uitgevoerd en wordt het catchblok overgeslagen.

Voorbeeld 1: niet-gedeclareerde variabele weergeven

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

Uitvoer

 NaN Er is een fout opgetreden Foutmelding: ReferenceError: a is niet gedefinieerd

In het bovenstaande programma is er geen variabele gedefinieerd. Wanneer u de variabele a probeert af te drukken, geeft het programma een foutmelding. Die fout zit in het catchblok.

JavaScript probeer … vangst … eindelijk Statement

U kunt de try… catch… finallyinstructie ook gebruiken om uitzonderingen af ​​te handelen. Het finallyblok wordt uitgevoerd als de code met succes wordt uitgevoerd of als er een fout optreedt.

De syntaxis van try… catch… finallyblok is:

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

Voorbeeld 2: probeer… vangen… eindelijk Voorbeeld

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

Uitvoer

 NaN Er is een fout opgetreden Foutmelding: ReferenceError: a is niet gedefinieerd. Eindelijk wordt elke keer uitgevoerd

In het bovenstaande programma treedt een fout op en die fout wordt door het catchblok opgevangen . Het finallyblok wordt in elke situatie uitgevoerd (als het programma met succes wordt uitgevoerd of als er een fout optreedt).

Let op : u moet catchof finallystatement na trystatement gebruiken. Anders geeft het programma een foutmelding Uncaught SyntaxError: Missing catch of uiteindelijk na een poging.

JavaScript probeer … vangen in setTimeout

Het try… catchzal de uitzondering niet opvangen als het gebeurde in " getimede " code, zoals in setTimeout (). Bijvoorbeeld,

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

Het bovenstaande try… catchwerkt niet omdat de engine de try… catchconstructie al heeft verlaten en de functie later wordt uitgevoerd.

Het try… catchblok moet zich binnen die functie bevinden om een ​​uitzondering binnen een getimede functie op te vangen. Bijvoorbeeld,

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

U kunt de throwinstructie ook gebruiken met de try… catchinstructie om door de gebruiker gedefinieerde uitzonderingen te gebruiken. Een bepaald getal wordt bijvoorbeeld gedeeld door 0 . Als u Infinityhet programma als een fout wilt beschouwen , kunt u een door de gebruiker gedefinieerde uitzondering genereren met behulp van de throwinstructie om die voorwaarde af te handelen.

In de volgende tutorial leer je over de JavaScript-throw-verklaring.

Interessante artikelen...