JavaScript versuchen ... fangen ... endlich Aussage

In diesem Tutorial lernen Sie anhand von Beispielen die Anweisungen try… catch… finally kennen, um Ausnahmen in JavaScript zu behandeln.

Die try, catchund finallyBlöcke werden verwendet Ausnahmen (eine bestimmte Art eines Fehlers) zu handhaben . Bevor Sie sich mit ihnen vertraut machen, müssen Sie die Arten von Fehlern bei der Programmierung kennen.

Arten von Fehlern

Bei der Programmierung kann der Code zwei Arten von Fehlern enthalten:

Syntaxfehler : Fehler in der Syntax. Wenn Sie beispielsweise schreiben consol.log('your result');, gibt das obige Programm einen Syntaxfehler aus. Die Schreibweise von consoleist ein Fehler im obigen Code.

Laufzeitfehler : Diese Art von Fehler tritt während der Ausführung des Programms auf. Zum Beispiel das
Aufrufen einer ungültigen Funktion oder einer Variablen.

Diese zur Laufzeit auftretenden Fehler werden als Ausnahmen bezeichnet . Nun wollen wir sehen, wie Sie mit diesen Ausnahmen umgehen können.

JavaScript try… catch-Anweisung

Die try… catchAnweisung wird verwendet, um die Ausnahmen zu behandeln. Die Syntax lautet:

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

Der Hauptcode befindet sich im tryBlock. tryWenn während der Ausführung des Blocks ein Fehler auftritt, wird dieser an den catchBlock weitergeleitet. Der catchBlock behandelt die Fehler gemäß den catch-Anweisungen.

Wenn kein Fehler auftritt, wird der Code im tryBlock ausgeführt und der catchBlock übersprungen.

Beispiel 1: Nicht deklarierte Variable anzeigen

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

Ausgabe

 NaN Ein Fehler wurde abgefangen. Fehlermeldung: ReferenceError: a ist nicht definiert

Im obigen Programm ist keine Variable definiert. Wenn Sie versuchen, eine Variable zu drucken, gibt das Programm einen Fehler aus. Dieser Fehler wird im catchBlock abgefangen .

JavaScript versuchen… fangen… endlich Statement

Sie können die try… catch… finallyAnweisung auch verwenden , um Ausnahmen zu behandeln. Der finallyBlock wird sowohl ausgeführt, wenn der Code erfolgreich ausgeführt wird, als auch wenn ein Fehler auftritt.

Die Syntax des try… catch… finallyBlocks lautet:

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

Beispiel 2: versuchen… fangen… endlich Beispiel

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

Ausgabe

 NaN Ein Fehler wurde abgefangen. Fehlermeldung: ReferenceError: a ist nicht definiert. Wird schließlich jedes Mal ausgeführt

Im obigen Programm tritt ein Fehler auf und dieser Fehler wird vom catchBlock abgefangen . Der finallyBlock wird in jeder Situation ausgeführt (wenn das Programm erfolgreich ausgeführt wird oder wenn ein Fehler auftritt).

Hinweis : Sie müssen catchoder finallyAnweisung nach tryAnweisung verwenden. Andernfalls gibt das Programm einen Fehler aus. Nicht erfasster Syntaxfehler: Fehlender Fang oder schließlich nach dem Versuch.

JavaScript try… catch in setTimeout

Das try… catchwird die Ausnahme nicht abfangen, wenn es in " zeitgesteuertem " Code wie in setTimeout () passiert ist. Beispielsweise,

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

Das Obige try… catchfunktioniert nicht, da die Engine das try… catchKonstrukt bereits verlassen hat und die Funktion später ausgeführt wird.

Der try… catchBlock muss sich innerhalb dieser Funktion befinden, um eine Ausnahme innerhalb einer zeitgesteuerten Funktion abzufangen. Beispielsweise,

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

Sie können die throwAnweisung auch mit der try… catchAnweisung verwenden, um benutzerdefinierte Ausnahmen zu verwenden. Zum Beispiel wird eine bestimmte Zahl durch 0 geteilt . Wenn Sie Infinityeinen Fehler im Programm berücksichtigen möchten, können Sie mithilfe der throwAnweisung eine benutzerdefinierte Ausnahme auslösen, um diese Bedingung zu behandeln.

Im nächsten Tutorial erfahren Sie mehr über die JavaScript-Throw-Anweisung.

Interessante Beiträge...