JavaScript versuchen ... fangen ... endlich
Beispiel
Dieses Beispiel enthält einen Tippfehler im try -Block . Benachrichtigung ist falsch geschrieben.
Der catch-Block fängt den Fehler ab und führt den Code aus, um ihn zu behandeln:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Weitere Beispiele unten.
Definition und Verwendung
Wenn ein Fehler auftritt, stoppt JavaScript und generiert eine Fehlermeldung.
Notiz
Der Fachbegriff dafür lautet: JavaScript wirft eine Ausnahme .
JavaScript erstellt ein Error-Objekt mit zwei Eigenschaften: name und message .
Die try...catch...finally
Kombination aus Anweisungen behandelt Fehler, ohne JavaScript anzuhalten.
Die try
Anweisung definiert den auszuführenden (zu versuchenden) Codeblock.
Die catch
Anweisung definiert einen Codeblock zur Behandlung von Fehlern.
Die finally
Anweisung definiert einen Codeblock, der unabhängig vom Ergebnis ausgeführt wird.
Die throw
Anweisung definiert einen benutzerdefinierten Fehler.
Sowohl catch
als finally
auch sind optional, aber Sie müssen eines davon verwenden.
Notiz
Durch die Verwendung von throw mit try und catch können Sie den Programmablauf steuern und benutzerdefinierte Fehlermeldungen generieren.
Siehe auch:
Syntax
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
Parameter
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
Mehr Beispiele
In diesem Beispiel wird die Eingabe untersucht.
Wenn der Wert falsch ist, wird eine Ausnahme (err) geworfen:
<p>Please input a number between
5 and 10:</p>
<input id="demo" type="text">
<button type="button"
onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "is Empty";
if(isNaN(x)) throw "not a number";
if(x > 10) throw "too high";
if(x < 5) throw "too low";
}
catch(err) {
message.innerHTML =
"Input " + err;
}
}
</script>
Die finally -Anweisung führt Code aus, unabhängig vom try-Ergebnis:
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "Empty";
if(isNaN(x))
throw "Not a number";
if(x >
10) throw "Too high";
if(x <
5) throw "Too low";
}
catch(err)
{
message.innerHTML = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
Browser-Unterstützung
try...catch
ist eine ECMAScript3 (ES3)-Funktion.
ES3 (JavaScript 1999) wird in allen Browsern vollständig unterstützt:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |