Auslösen von Exceptions in JavaScript
In vorherigen Lektionen haben wir zwei Situationen kennengelernt, in denen JavaScript bei Problemen eine Exception auslöst.
In Ihrem Projekt kann es jedoch auch andere Situationen geben, die für Sie außergewöhnlich sind, für JavaScript jedoch nicht. In diesem Fall können Sie Ihre eigenen, benutzerdefinierten Exceptions erstellen und auslösen.
Lassen Sie uns die dafür notwendige Syntax analysieren.
Zunächst muss die Exception mit dem Befehl new Error
erstellt werden, wobei der Exception-Text als Parameter
übergeben wird:
new Error('Exception-Text');
Dann muss diese Exception mit dem Befehl
throw ausgelöst werden:
throw new Error('Exception-Text');
Das Auslösen einer Exception veranlasst JavaScript,
eine Ausnahmesituation anzunehmen.
Das bedeutet, dass eine solche Exception mit
der Konstruktion try-catch abgefangen und
auf die gewünschte Weise behandelt werden kann.
Sehen wir uns an einem Beispiel an, wie man dies verwendet. Nehmen wir an, wir haben eine Funktion, die eine Zahl durch eine andere teilt:
function div(a, b) {
return a / b;
}
Nehmen wir an, die Division durch Null sei
verboten, und beim Versuch, dies zu tun, sollte
eine Ausnahmesituation auftreten. Dazu
prüfen wir in der Funktion, ob kein Versuch
besteht, durch 0 zu dividieren.
Wenn nicht - dividieren wir,
andernfalls - lösen wir eine Exception aus:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('Fehler bei Division durch Null');
}
}
Lassen Sie uns zunächst einfach versuchen, durch
0 zu dividieren, ohne die Exception abzufangen:
alert( div(3, 0) );
In diesem Fall wird die Skriptausführung abgebrochen
und in der Konsole erscheint ein Fehler mit dem Text 'Fehler bei Division durch Null' (prüfen Sie dies).
Lassen Sie uns nun unseren Fehler abfangen und
irgendwie behandeln:
try {
alert( div(3, 0) );
} catch (error) {
alert('Sie versuchen durch 0 zu teilen, was verboten ist');
}
In JavaScript führt der Versuch, die Quadratwurzel aus einer negativen Zahl zu ziehen, nicht zum Auslösen einer Exception:
let result = Math.sqrt(-1);
console.log(result); // gibt NaN aus
Schreiben Sie Ihre eigene Funktion, die die Quadratwurzel aus einer Zahl zieht und dabei eine Exception auslöst, wenn die Wurzel aus einer negativen Zahl gezogen wird.