JavaScript try/catch/finally-satsen
- Föregående sida throw
- Nästa sida var
- Åter till föregående nivå JavaScript uttryck referens manual
Definition och användning
try/catch/finally-satsen hanterar delvis eller helt alla möjliga fel i ett kodblock samtidigt som koden fortfarande körs.
Fel kan orsakas av programmerarens kodningsfel, felaktiga inmatningar som leder till fel och andra oförutsedda situationer.
try-satsen tillåter dig att definiera en kodblock som ska testas för fel vid körning.
Om ett fel inträffar i try-blocket, tillåter catch-satsen dig att definiera ett kodblock att köra.
finally-satsen tillåter dig att köra kod efter try och catch, oavsett resultat.
Kommentar:catch- och finally-satserna är valfria, men en av dem måste användas när try-satsen används (om inte båda samtidigt).
Tips:När ett fel inträffar, stoppar JavaScript vanligtvis och genererar ett felmeddelande. Använd throw-satsen för att skapa anpassade fel (kasta undantag). Om du använder throw tillsammans med try och catch kan du kontrollera programflödet och generera anpassade felmeddelanden.
För mer information om JavaScript-fel, lär dig JavaScript-fel教程.
Exempel
I detta exempel har vi gjort ett misstag i texten i koden (i try-blocket).
Detta exempel bör visa "Välkommen gäst!", men alert stavningen är fel.
catch-blocken fångar fel och kör koden för att hantera det:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
adddlert("Välkommen gäst!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>
Mer TIY-exempel finns längre ner på sidan.
Syntax
try {
tryCode - Kodblock som ska försökas
}
catch(err) {
catchCode - Kodblock för att hantera fel
}
finally {
finallyCode - Kodblock som ska köras oavsett resultat av try / catch
}
Parametervärde
| Parameter | Beskrivning |
|---|---|
| tryCode | Obligatorisk. Koden som ska testas för fel under körning. |
| err | Obligatorisk, om används tillsammans med catch. Ange den lokala variabel som refererar till felobjektet. Variabeln kan referera till ett Error-objekt (som innehåller information om det inträffade felet, till exempel meddelandet "'addlert' är inte definierat"). Om undantaget skapades av en throw-sats, refererar variabeln till objektet som specificerades i throw-satsen (se "Fler exempel"). |
| catchCode | Valfritt. Koden som ska köras om ett fel uppstår i try-blocket. Om inget fel uppstår, körs denna kodblock aldrig. |
| finallyCode | Valfritt. Koden som alltid ska köras, oavsett resultat av try / catch. |
Tekniska detaljer
| JavaScript-version: | ECMAScript 3 |
|---|
Mer exempel
Exempel
Detta exempel kontrollerar inmatningen. Om värdet är felaktigt, kastas ett undantag (err).
catch-satsen fångar undantag (err) och visar anpassade felmeddelanden:
<!DOCTYPE html>
<html>
<body>
<p>Ange ett nummer mellan 5 och 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Testa Input</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 "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>
</body>
</html>
Exempel
finally-satsen låter dig köra kod efter try och catch, oavsett resultat:
function myFunction()
var message, x;
message = document.getElementById("message");
message.innerHTML = "";
x = document.getElementById("demo").value;
try {
if(x == "") throw "Tom";
if(isNaN(x)) throw "Inte ett nummer";
if(x > 10) throw "För högt";
if(x < 5) throw "För lågt";
}
catch(err) {
message.innerHTML = "Fel: " + err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
Webbläsare stödjer
| 语句 | Chrome | IE | Firefox | Safari | Opera |
|---|---|---|---|---|---|
| try/catch/finally | Stöd | Stöd | Stöd | Stöd | Stöd |
Relaterade sidor
JavaScript-tutorials:JavaScript-fel
JavaScript referenshandbok:JavaScript throw-sats
- Föregående sida throw
- Nästa sida var
- Åter till föregående nivå JavaScript uttryck referens manual

