Instructions try/catch/finally en JavaScript

Définition et utilisation

L'instruction try/catch/finally traite les erreurs potentielles survenues dans un bloc de code, tout en exécutant toujours le code.

Les erreurs peuvent être causées par des erreurs de codage des programmeurs, des erreurs d'entrée incorrectes et d'autres situations imprévisibles.

L'instruction try permet de définir un bloc de code à tester pour des erreurs lors de l'exécution.

Si une erreur se produit dans le bloc try, l'instruction catch permet de définir un bloc de code à exécuter.

L'instruction finally permet d'exécuter du code après try et catch, peu importe le résultat.

Remarque :Les instructions catch et finally sont optionnelles, mais l'une d'elles doit être utilisée lors de l'utilisation de l'instruction try (sauf si elles sont utilisées ensemble).

Astuce :Lorsqu'une erreur se produit, JavaScript s'arrête généralement et génère un message d'erreur. Utilisez une instruction throw pour créer des erreurs personnalisées (lancer des exceptions). Si vous utilisez throw avec try et catch, vous pouvez contrôler le flux du programme et générer des messages d'erreur personnalisés.

Pour en savoir plus sur les erreurs JavaScript, apprenez le tutoriel sur les erreurs JavaScript.

Example

Dans cet exemple, nous avons fait une faute de frappe dans le code (dans le bloc try).

Dans cet exemple, il devrait afficher "Bienvenue invité!", mais il y a une erreur de frappe dans l'alerte.

Le bloc catch attrape les erreurs et exécute un code pour les traiter :

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("Bienvenue invité!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

try it yourself

Vous trouverez plus d'exemples TIY en bas de la page.

Syntaxe

try {
  tryCode - Bloc de code à essayer
}
catch(err) {
  catchCode - Bloc de code pour gérer les erreurs
} 
finally {
  finallyCode - Bloc de code à exécuter indépendamment du résultat de try / catch
}

Valeur des paramètres

Paramètres Description
tryCode Obligatoire. Un bloc de code à tester lors de l'exécution pour vérifier l'erreur.
err Obligatoire, si utilisé avec catch. Spécifie la variable locale référençant l'erreur. Cette variable peut référencer l'objet Error (contenant des informations sur l'erreur, par exemple le message "'addlert' is not defined"). Si l'exception est créée par une instruction throw, cette variable fait référence à l'objet spécifié dans l'instruction throw (voir "Plus d'exemples").
catchCode Optionnel. Un bloc de code à exécuter si une erreur se produit dans le bloc try. Si aucune erreur ne se produit, ce bloc de code ne sera jamais exécuté.
finallyCode Optionnel. Un bloc de code à exécuter indépendamment du résultat de try / catch.

Détails techniques

JavaScript version: ECMAScript 3

More examples

Example

This example checks the input. If the value is incorrect, it throws an exception (err).

catch statement captures 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

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 support

instruction Chrome IE Firefox Safari Opera
try/catch/finally Support Support Support Support Support

Pages connexes

Tutoriel JavaScript :Erreurs JavaScript

Manuel de référence JavaScript :Instruction throw JavaScript