JavaScript try/catch/finally-Statement
- Vorherige Seite throw
- Nächste Seite var
- Zurück zur übergeordneten Ebene JavaScript Anweisung Referenzhandbuch
Definition und Verwendung
Das try/catch/finally-Statement behandelt mögliche Teile oder alle Fehler im Codeblock und führt gleichzeitig den Code weiter aus.
Fehler können durch Programmierfehler des Entwicklers, Fehler bei der Eingabe verursachte Fehler und andere unvorhersehbare Situationen verursacht werden.
Der try-Befehl ermöglicht es Ihnen, einen Codeblock zu definieren, der bei der Ausführung auf Fehler überprüft wird.
Wenn im try-Block ein Fehler auftritt, ermöglicht der catch-Statement die Definition eines Codeblocks, der ausgeführt werden soll.
Das finally-Statement ermöglicht es Ihnen, Code nach try und catch auszuführen, unabhängig vom Ergebnis.
Anmerkung:catch- und finally-Statements sind optional, aber bei der Verwendung von try-Anweisungen ist eines davon erforderlich (wenn nicht beide gleichzeitig).
Tipp:Wenn ein Fehler auftritt, stoppt JavaScript normalerweise und generiert eine Fehlermeldung. Verwenden Sie das throw-Statement, um benutzerdefinierte Fehler (Ausnahmen) zu erstellen. Wenn Sie throw mit try und catch verwenden, können Sie den Programfluss steuern und benutzerdefinierte Fehlermeldungen generieren.
Für mehr Informationen über JavaScript-Fehler, lernen Sie das JavaScript-Fehler-Tutorial.
Beispiel
In diesem Beispiel haben wir im Code (im try-Block) einen Tippfehler gemacht.
Dieser Beispiel sollte "Welcome guest!" anzeigt, aber es gibt einen Tippfehler bei der alert-Schreibweise.
Der catch-Block fängt Fehler ab und führt Code zur Fehlerbehandlung aus:
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Welcome guest!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
Unten auf der Seite gibt es mehr TIY-Beispiele.
Syntax
try { tryCode - Codeblock, der versucht } catch(err) { catchCode - Codeblock zur Fehlerbehandlung } finally { finallyCode - Codeblock, der unabhängig vom Ergebnis von try / catch ausgeführt wird }
Parameterwert
Parameter | Beschreibung |
---|---|
tryCode | Notwendig. Ein Codeblock, der während der Ausführung auf den Fehler getestet wird. |
err | Notwendig, wenn mit catch verwendet. Gibt den lokalen Variablen an, die den Fehler referenzieren. Diese Variable kann das Error-Objekt (das Informationen über den aufgetretenen Fehler enthält, z.B. die Nachricht "'addlert' ist nicht definiert") referenzieren. Wenn die Ausnahme durch ein throw-Statement erstellt wurde, bezieht sich die Variable auf das Objekt, das im throw-Statement angegeben wurde (siehe "Mehr Beispiele"). |
catchCode | Optional. Ein Codeblock, der ausgeführt wird, wenn im try-Block ein Fehler auftritt. Wird kein Fehler aufgetreten, wird dieser Codeblock niemals ausgeführt. |
finallyCode | Optional. Ein Codeblock, der unabhängig vom Ergebnis von try / catch immer ausgeführt wird. |
Technische Details
JavaScript-Version: | ECMAScript 3 |
---|
Mehr Beispiele
Beispiel
Dieses Beispiel überprüft die Eingabe. Wenn der Wert falsch ist, wird eine Ausnahme (err) ausgelöst.
catch-Anweisung fängt Ausnahmen (err) ab und zeigt eine benutzerdefinierte Fehlermeldung an:
<!DOCTYPE html> <html> <body> <p>Geben Sie eine Zahl zwischen 5 und 10 ein:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Eingabe testen</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "leer"; if(isNaN(x)) throw "keine Zahl"; if(x > 10) throw "zu hoch"; if(x < 5) throw "zu niedrig"; } catch(err) { message.innerHTML = "Eingabe " + err; } } </script> </body> </html>
Beispiel
finally-Anweisung führt Code aus, der nach try und catch ausgeführt werden soll, egal ob der Erfolg vorliegt oder nicht:
function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Leer"; if(isNaN(x)) throw "Keine Zahl"; if(x > 10) throw "Zu hoch"; if(x < 5) throw "Zu niedrig"; } catch(err) { message.innerHTML = "Fehler: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
Browser unterstützt
语句 | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | Unterstützung | Unterstützung | Unterstützung | Unterstützung | Unterstützung |
Verwandte Seiten
JavaScript-Tutorial:JavaScript-Fehler
JavaScript-Referenzhandbuch:JavaScript-throw-Anweisung
- Vorherige Seite throw
- Nächste Seite var
- Zurück zur übergeordneten Ebene JavaScript Anweisung Referenzhandbuch