JavaScript spróbuj...złapać...wreszcie
Przykład
Ten przykład zawiera literówkę w bloku try . Alert zawiera błędną pisownię.
Blok catch przechwytuje błąd i wykonuje kod, który go obsłuży:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Więcej przykładów poniżej.
Definicja i użycie
Gdy wystąpi błąd , JavaScript zatrzyma się i wygeneruje komunikat o błędzie.
Notatka
Terminem technicznym na to jest: JavaScript zgłasza wyjątek .
JavaScript tworzy obiekt Error z dwiema właściwościami: name i message .
Kombinacja try...catch...finally
instrukcji obsługuje błędy bez zatrzymywania JavaScript.
Instrukcja try
definiuje blok kodu do uruchomienia (do wypróbowania).
Instrukcja catch
definiuje blok kodu do obsługi dowolnego błędu.
Instrukcja finally
definiuje blok kodu do uruchomienia niezależnie od wyniku.
Instrukcja throw
definiuje błąd niestandardowy.
Oba catch
i finally
są opcjonalne, ale musisz użyć jednego z nich.
Notatka
Używanie throw z try and catch , pozwala kontrolować przepływ programu i generować niestandardowe komunikaty o błędach.
Zobacz też:
Składnia
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
}
Parametry
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 |
Więcej przykładów
Ten przykład analizuje dane wejściowe.
Jeśli wartość jest nieprawidłowa, zgłaszany jest wyjątek (err):
<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>
Instrukcja final wykonuje kod, niezależnie od wyniku try:
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 = "";
}
}
Obsługa przeglądarki
try...catch
to funkcja ECMAScript3 (ES3).
ES3 (JavaScript 1999) jest w pełni obsługiwany we wszystkich przeglądarkach:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |