In diesem Tutorial lernen Sie anhand von Beispielen die JavaScript-Throw-Anweisungen kennen.
Im vorherigen Tutorial haben Sie gelernt, mit Ausnahmen mit der JavaScript-Anweisung try… catch umzugehen. Die try and catch-Anweisungen behandeln Ausnahmen auf standardmäßige Weise, die von JavaScript bereitgestellt wird. Sie können die throw
Anweisung jedoch verwenden, um benutzerdefinierte Ausnahmen zu übergeben.
In JavaScript behandelt die throw
Anweisung benutzerdefinierte Ausnahmen. Wenn beispielsweise eine bestimmte Zahl durch 0 geteilt wird und Sie dies Infinity
als Ausnahme betrachten müssen, können Sie die throw
Anweisung verwenden, um diese Ausnahme zu behandeln.
JavaScript-Anweisung throw
Die Syntax der throw-Anweisung lautet:
throw expression;
Hier expression
gibt den Wert der Ausnahme.
Beispielsweise,
const number = 5; throw number/0; // generate an exception when divided by 0
Hinweis : Der Ausdruck kann eine Zeichenfolge, ein Boolescher Wert, eine Zahl oder ein Objektwert sein.
JavaScript werfen mit try… catch
Die Syntax von try… catch… throw
lautet:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Hinweis : Wenn die throw-Anweisung ausgeführt wird, verlässt sie den Block und wechselt zum catch
Block. Und der Code unter der throw
Anweisung wird nicht ausgeführt.
Beispiel 1: versuchen… fangen… werfen Beispiel
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Ausgabe
Ein Fehler wurde abgefangen. Fehlermeldung: Fehler: Die Anzahl ist niedrig
Im obigen Programm wird eine Bedingung überprüft. Wenn die Zahl kleiner als 51 ist , wird ein Fehler ausgegeben. Und dieser Fehler wird mit der throw
Anweisung ausgelöst .
Die throw
Anweisung gibt die Zeichenfolge The number is low
als Ausdruck an.
Hinweis : Sie können auch andere integrierte Fehler Konstrukteuren für Standardfehler verwenden TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, und RangeError
.
Beispielsweise,
throw new ReferenceError('this is reference error');
Eine Ausnahme erneut auslösen
Sie können auch eine throw
Anweisung innerhalb des catch
Blocks verwenden, um eine Ausnahme erneut auszulösen. Beispielsweise,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Ausgabe
Ein Fehler wurde abgefangen. Fehlermeldung: Fehler: Dies ist der Fehler, der behoben wurde
Im obigen Programm wird die throw
Anweisung innerhalb des try
Blocks verwendet, um eine Ausnahme abzufangen. Und die throw
Anweisung wird im catch
Block erneut ausgelöst , der ausgeführt wird, wenn der catch
Block die Ausnahme nicht behandeln kann.
Hier behandelt der catch
Block die Ausnahme und es tritt kein Fehler auf. Daher wird die throw
Aussage nicht erneut geworfen.
Wenn der Fehler nicht vom catch-Block behandelt wurde, wird die throw-Anweisung mit der Fehlermeldung Uncaught Error: Der Wert ist niedrig