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