JavaScript try/catch/finally-statement
- Previous page throw
- Next page var
- Go back to the previous level JavaScript Statement Referentiemanual
Definitie en gebruik
De try/catch/finally-statement beheert mogelijk opgetreden fouten in een codeblok, terwijl de code nog steeds wordt uitgevoerd.
Fouten kunnen veroorzaakt worden door foutieve code van de programmeur, foutieve invoer die tot fouten leidt en andere onvoorspelbare situaties.
De try-statement maakt het mogelijk om een codeblok te definiëren dat tijdens de uitvoering op fouten moet worden getest.
Als er een fout optreedt in de try-blok, laat de catch-statement u toe om een codeblok te definiëren dat moet worden uitgevoerd.
Een finally-statement laat u toe om code uit te voeren na de try en catch, ongeacht het resultaat.
Opmerking:Catch- en finally-staten zijn optioneel, maar moeten één van hen worden gebruikt bij het gebruik van de try-statement (tenzij ze tegelijkertijd worden gebruikt).
Tip:Wanneer een fout optreedt, stopt JavaScript meestal en genereert een foutbericht. Gebruik throw-statement om aangepaste fouten te maken (uitzonderingen te gooien). Als throw samen met try en catch wordt gebruikt, kunt u de stroom van het programma controleren en aangepaste foutberichten genereren.
Voor meer informatie over JavaScript-fouten, leer het JavaScript fouten les.
Example
In dit voorbeeld hebben we een fout gemaakt in het woord in de code (in de try-blok).
Dit voorbeeld zou moeten vragen "Welcome guest!", maar er is een fout in de spelling van alert.
Een catch-blok vangt fouten op en voert code uit om deze te verwerken:
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Welcome guest!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
Er zijn meer TIY-exempelen onder de pagina.
Syntax
try { tryCode - Een codeblok dat moet worden uitgevoerd } catch(err) { catchCode - Een codeblok om fouten te verwerken } finally { finallyCode - Een codeblok dat moet worden uitgevoerd ongeacht het resultaat van try / catch }
Parameterswaarden
Parameters | Beschrijving |
---|---|
tryCode | Verplicht. Een codeblok dat moet worden getest tijdens de uitvoering. |
err | Verplicht, als gebruikt met catch. Specificeer de lokale variabele die de referentie van de fout bevat. Deze variabele kan de Error-object verwijzen (die informatie bevat over de fout, zoals het bericht "'addlert' is not defined"). Als de uitzondering is gecreëerd door een throw-statement, verwijst de variabele naar het object dat in het throw-statement is gespecificeerd (zie "Meer voorbeelden"). |
catchCode | Optioneel. Een codeblok dat moet worden uitgevoerd als er een fout optreedt in de try-blok. Als er geen fout optreedt, wordt dit codeblok nooit uitgevoerd. |
finallyCode | Optioneel. Een codeblok dat moet worden uitgevoerd ongeacht het resultaat van try / catch. |
Technische details
JavaScript version: | ECMAScript 3 |
---|
More examples
Example
This example checks the input. If the value is incorrect, it throws an exception (err).
The catch statement catches exceptions (err) and displays a custom error message:
<!DOCTYPE html> <html> <body> <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() { 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>
Example
The finally statement allows you to execute code after both try and catch, regardless of the result:
function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; 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 = ""; } }
browser supports
语句 | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | Support | Support | Support | Support | Support |
Related pages
JavaScript tutorial:JavaScript errors
JavaScript reference manual:JavaScript throw statement
- Previous page throw
- Next page var
- Go back to the previous level JavaScript Statement Referentiemanual