JavaScript probeer...vang...eindelijk
Voorbeeld
Dit voorbeeld heeft een typefout in het try-blok . Waarschuwing is verkeerd gespeld.
Het catch-blok vangt de fout op en voert de code uit om deze af te handelen:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Hieronder meer voorbeelden.
Definitie en gebruik
Als er een fout optreedt, stopt JavaScript en wordt er een foutbericht gegenereerd.
Opmerking
De technische term hiervoor is: JavaScript genereert een uitzondering .
JavaScript maakt een Error-object met twee eigenschappen: name en message .
De try...catch...finally
statementscombo verwerkt fouten zonder JavaScript te stoppen.
De try
instructie definieert het codeblok dat moet worden uitgevoerd (om te proberen).
De catch
instructie definieert een codeblok om elke fout af te handelen.
De finally
instructie definieert een codeblok dat moet worden uitgevoerd, ongeacht het resultaat.
De throw
instructie definieert een aangepaste fout.
Beide catch
en finally
zijn optioneel, maar u moet er wel een gebruiken.
Opmerking
Door gooien met try and catch te gebruiken , kunt u de programmastroom controleren en aangepaste foutmeldingen genereren.
Zie ook:
Syntaxis
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
}
Parameters:
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 |
Meer voorbeelden
In dit voorbeeld wordt de invoer onderzocht.
Als de waarde verkeerd is, wordt een uitzondering (err) gegenereerd:
<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>
De instructie final voert code uit, ongeacht het resultaat van de 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 = "";
}
}
Browserondersteuning
try...catch
is een ECMAScript3 (ES3)-functie.
ES3 (JavaScript 1999) wordt volledig ondersteund in alle browsers:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |