Instructions d'erreur JavaScript
L'instruction try
En JavaScript, l'instruction try est utilisée pour gérer les erreurs (également appelées exceptions ) qui peuvent survenir lors de l'exécution du code, sans arrêter l'ensemble du programme.
L'instruction try fonctionne avec catch .
Parfois, elle fonctionne avec finally .
Et parfois, elle fonctionne avec throw .
Le bloc Try
Le bloc try contient le code qui pourrait générer une erreur.
Si aucune erreur ne se produit, le bloc catch est ignoré.
Syntaxe
try {
// Code qui peut causer une erreur
} catch (error) {
// Code pour gérer l'erreur
}
Le bloc Catch
Le bloc catch s'exécute uniquement si une erreur se produit dans le bloc try .
L'objet d'erreur fournit des détails sur ce qui a mal tourné.
Syntaxe
try {
// Code qui peut causer une erreur
} catch (error) {
// Code pour gérer l'erreur
}
Le bloc Finally (Optionnel)
Le bloc finally s'exécute après les blocs try et catch , qu'une erreur se soit produite ou non.
Il est couramment utilisé pour des tâches de nettoyage (par exemple, fermer des fichiers, arrêter des chargeurs, etc.).
Syntaxe
try {
// Code qui peut causer une erreur
} catch (error) {
// Code pour gérer l'erreur
} finally {
// Code qui s'exécute toujours, peu importe quoi
}
JavaScript génère des erreurs
Lorsqu'une erreur se produit, JavaScript s'arrête normalement et génère un message d'erreur.
Le terme technique pour cela est : JavaScript va lancer une exception (lancer une erreur) .
JavaScript va en fait créer un objet Error avec deux propriétés : name et message .
L'instruction throw
L'instruction throw vous permet de créer une erreur personnalisée.
Techniquement, vous pouvez lancer une exception (lancer une erreur) .
L'exception peut être une String , un Number , un Boolean ou un Object :
throw "Trop grand"; // lancer un texte
throw 500; // lancer un nombre 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.
Exemple de validation d'entrée
Cet exemple examine l'entrée. Si la valeur est incorrecte, une exception (err) est lancée.
L'exception (err) est capturée par l'instruction catch et un message d'erreur personnalisé est affiché :
<!DOCTYPE html>
<html>
<body>
<p>Veuillez entrer un nombre entre 5 et 10 :</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Tester l'entrée</button>
<p id="p01"></p>
<script>
function myFunction() {
const message = document.getElementById("p01");
message.innerHTML = "";
let x = document.getElementById("demo").value;
try {
if(x.trim() == "") throw "vide";
if(isNaN(x)) throw "pas un nombre";
x = Number(x);
if(x < 5) throw "trop bas";
if(x > 10) throw "trop haut";
} catch(err) {
message.innerHTML = "L'entrée est " + err;
}
}
</script>
</body>
</html> Validation HTML
Le code ci-dessus n'est qu'un exemple.
Les navigateurs modernes utilisent souvent une combinaison de JavaScript et de validation HTML intégrée, en utilisant des règles de validation prédéfinies définies dans les attributs HTML :
<input id="demo" type="number" min="5" max="10" step="1"> Vous pouvez en savoir plus sur la validation des formulaires dans un chapitre ultérieur de ce tutoriel.
Exemple Finally
L'instruction finally vous permet d'exécuter du code après les blocs try et catch , quel que soit le résultat :
Syntaxe
try {
Bloc de code à essayer
} catch( err ) {
Bloc de code pour gérer les erreurs
} finally {
Bloc de code à exécuter indépendamment du résultat du try / catch
} Exemple
function myFunction() {
const message = document.getElementById("p01");
message.innerHTML = "";
let x = document.getElementById("demo").value;
try {
if(x.trim() == "") throw "est vide";
if(isNaN(x)) throw "n'est pas un nombre";
x = Number(x);
if(x > 10) throw "est trop haut";
if(x < 5) throw "est trop bas";
} catch(err) {
message.innerHTML = "Erreur : " + err + ".";
} finally {
document.getElementById("demo").value = "";
}
}