JavaScript try/catch/finally-statement

Definition og brug

Try/catch/finally-statementet håndterer delvise eller alle fejl, der kan opstå i en kodeblok, mens koden stadig kører.

Fejl kan skyldes programmererens fejl i koden, fejl i input, eller andre uforudsete situationer.

Try-statementen giver dig mulighed for at definere en kodeblok, der skal testes for fejl under udførelse.

Hvis der opstår en fejl i try-blokken, giver catch-sætningen dig mulighed for at definere en kodeblok, der skal udføres.

finally-sætningen tillader dig at udføre kode efter try og catch, uanset resultatet.

Bemærkning:catch- og finally-sætningerne er valgfrie, men en af dem skal bruges, når try-sætningen bruges (medmindre de bruges samtidig).

Tip:Når en fejl opstår, stopper JavaScript normalt og genererer en fejlmeddelelse. Brug throw-sætningen til at oprette brugerdefinerede fejl (kaste undtagelser). Hvis du bruger throw sammen med try og catch, kan du kontrollere programflowet og generere brugerdefinerede fejlmeddelelser.

For mere information om JavaScript-fejl, lær JavaScript-fejlshandlingstutorial.

Example

I dette eksempel har vi foretaget en fejl i teksten i koden (i try-blokken).

Dette eksempel skulle vise "Velkommen gæst!", men alert stavningen er forkert.

catch-blokken fanger fejl og udfører kode til at håndtere dem:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("Velkommen gæst!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

try it yourself

Der er flere TIY-eksempler nedenfor på siden.

Syntaks

try {
  tryCode - Kodeblok, der skal prøves
}
catch(err) {
  catchCode - Kodeblok til håndtering af fejl
} 
finally {
  finallyCode - Kodeblok, der skal udføres uanset resultatet af try / catch
}

Parameterværdi

Parameter Beskrivelse
tryCode Obligatorisk. Kodeblokken skal testes for fejl under udførelse.
err Obligatorisk, hvis brugt sammen med catch. Angiver den lokale variabel, der refererer til fejlen. Denne variabel kan referere til Error-objektet (som indeholder oplysninger om den opstående fejl, f.eks. beskeden "'addlert' er ikke defineret"). Hvis undtagelsen er oprettet af en throw-sætning, refererer variablen til objektet specificeret i throw-sætningen (se "Flere eksempler").
catchCode Valgfri. Hvis der opstår en fejl i try-blokken, skal denne kodeblok køres. Hvis der ikke opstår en fejl, vil denne kodeblok aldrig blive kørt.
finallyCode Valgfri. Uanset resultatet af try / catch skal denne kodeblok altid køres.

Teknisk detalje

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 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

Relaterede sider

JavaScript tutorial:JavaScript fejl

JavaScript referencehåndbog:JavaScript throw sætning