JavaScript zkuste...chyťte...konečně
Příklad
Tento příklad má překlep v bloku try . Upozornění je špatně napsané.
Blok catch zachytí chybu a spustí kód, který ji zpracuje:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Další příklady níže.
Definice a použití
Když dojde k chybě , JavaScript se zastaví a vygeneruje chybovou zprávu.
Poznámka
Technický termín pro to je: JavaScript vyvolá výjimku .
JavaScript vytvoří objekt Error se dvěma vlastnostmi: name a message .
Kombinace try...catch...finally
příkazů zpracovává chyby bez zastavení JavaScriptu.
Příkaz try
definuje blok kódu, který se má spustit (vyzkoušet).
Příkaz catch
definuje blok kódu pro zpracování jakékoli chyby.
Příkaz finally
definuje blok kódu, který se má spustit bez ohledu na výsledek.
Příkaz throw
definuje vlastní chybu.
Oba catch
a finally
jsou volitelné, ale musíte použít jeden z nich.
Poznámka
Použití throw s try and catch , vám umožní ovládat tok programu a generovat vlastní chybové zprávy.
Viz také:
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
}
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 |
Další příklady
Tento příklad zkoumá vstup.
Pokud je hodnota nesprávná, je vyvolána výjimka (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>
Příkaz last spustí kód bez ohledu na výsledek 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 = "";
}
}
Podpora prohlížeče
try...catch
je funkce ECMAScript3 (ES3).
ES3 (JavaScript 1999) je plně podporován ve všech prohlížečích:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |