JavaScript try/catch/finally-Statement

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>

Versuchen Sie es selbst

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>

Versuchen Sie es selbst

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 = "";
  }
}

Versuchen Sie es selbst

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