JavaScript try/catch/finally-statement

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>

try it yourself

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>

try it yourself

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 = "";
  }
}

try it yourself

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