English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Des erreurs imprévues peuvent se produire lors de l'exécution de code JavaScript.
Les erreurs peuvent être des erreurs de codage écrites par le programmeur, des erreurs causées par des entrées incorrectes, et d'autres choses imprévisibles.
Ainsi, pour gérer les erreurs, JavaScript fournit4Des mots-clés :
L'instruction try vous permet de tester si un bloc de code contient des erreurs
L'instruction catch vous permet de gérer les erreurs
L'instruction throw vous permet de créer des erreurs personnalisées
L'instruction finally vous permet d'exécuter du code après une tentative et une capture, peu importe le résultat.
Dans cet exemple, nous avons écrit "alert" comme "aaalert" pour produire délibérément une erreur :
try { aaalert("Hello world"); } document.getElementById("result").innerHTML = e.name + "<br>" + e.message; }Voyons un exemple‹/›
Lorsqu'une erreur se produit, JavaScript arrête généralement de s'exécuter et crée un objet avec deux propriétésObjet Error:nom et message.
L'instruction try vous permet de définir un bloc de code qui sera testé pour des erreurs lors de son exécution.
Si une erreur se produit dans le bloc try, cette instruction vous permet de définir un bloc de code à exécuter.
Les instructions JavaScript try et catch apparaissent en paires :
try { //try_statements-Instructions à essayer }catch(err){ //catch_statements-Instructions de gestion des erreurs }
La phrase throw lève une exception définie par l'utilisateur.
La phrase throw permet de créer des erreurs personnalisées. Techniquement, cela s'appelle un "Lancer une exception ".
Une exception peut être une chaîne JavaScript, un nombre, un booléen ou un objet :
lancer une exception "Invalid"; // Générer une exception avec une valeur de chaîne lancer 32; // Générer une valeur32l'exception lancer une exception true; // Générer une exception avec une valeur true
Si vous utilisez throw avec try et catch, vous pouvez spécifier le flux de programme et générer un message d'erreur personnalisé.
Dans cet exemple, si vous passez n'importe quel paramètre non numérique à getRectArea(), il lance une erreur personnalisée :
function getRectArea(width, height) { if (isNaN(width) || isNaN(height)) { lancer une exception "Le paramètre n'est pas un nombre!"; } } try { getRectArea(5, 'Z'); } catch(err) { document.getElementById('para').innerHTML = err; }Voyons un exemple‹/›
Dans cet exemple, si la valeur est incorrecte, une exception (err) est levée. La phrase catch capte l'exception (err) et affiche un message d'erreur personnalisé :
var x = document.querySelector("input").value; try { if(x == "") throw "is Empty"; if(isNaN(x)) throw "Not a Number"; if(x > 10)lancer une exception "trop haut"; if(x < 5)lancer une exception "trop bas"; } catch(err) { document.getElementById("para").innerHTML = "Input " + err; }Voyons un exemple‹/›
Cette instruction finally vous permet d'exécuter du code après try et catch, peu importe le résultat de catch.
try { aaalert("Hello world"); } catch(err) { document.getElementById("result").innerHTML = err; } finally { document.getElementById("result").innerHTML += "<h3>Finally statement executed</h3>"; }Voyons un exemple‹/›
Les instructions catch et finally sont optionnelles, mais vous devez utiliser l'une d'elles (ou les deux), en utilisant la phrase try :
try { aaalert("Hello world"); } finally { document.getElementById("result").innerHTML = "Finally statement executed"; }Voyons un exemple‹/›
JavaScript possède un objet Error intégré qui fournit des informations sur les erreurs lors de leur survenue.
L'objet Error fournit deux attributs utiles : name et message.
Le tableau suivant liste les attributs de l'objet Error :
Attribut | Description |
---|---|
name | Définit ou renvoie le nom de l'erreur |
message | Définit ou renvoie le message d'erreur |
L'attribut error name peut renvoyer sept valeurs différentes :
Type | Description |
---|---|
EvalError | représente des erreurs concernant la fonction globale eval() |
InternalError | représente une erreur se produisant lorsque l'engin JavaScript déclenche une erreur interne |
RangeError | représente une erreur se produisant lorsque la variable ou le paramètre numérique dépasse sa plage de valeurs valides |
ReferenceError | représente une erreur se produisant lors de la tentative de désréférencement d'une référence invalide |
SyntaxError | représente une erreur de syntaxe se produisant lors de l'analyse du code dans eval() |
TypeError | représente une erreur se produisant lorsque une variable ou un paramètre n'est pas du type valide |
URIError | représente une erreur se produisant lors de la transmission de paramètres invalides à encodeURI() ou decodeURI() |
La section suivante présentera en détail chaque type d'erreur.
Lorsque pareval()Une erreur EvalError est lancée lorsque l'exécution du code par la fonction rencontre une erreur.
Cependant, JavaScript ne lance plus cette erreur, mais elle est conservée pour la compatibilité avec les versions antérieures.
Les versions plus récentes de JavaScript ne lancent plus d'exceptions EvalError. Utilisez SyntaxError à la place.
Lorsque vous utilisez un nombre en dehors de la plage de valeurs autorisées, une erreur RangeError est déclenchée.
Par exemple, créer un tableau de longueur négative lance une erreur RangeError :
try { var arr = new Array(-1); // lance une erreur de plage } document.getElementById("result").innerHTML = err.name + "<br>" + err.message; }Voyons un exemple‹/›
Lorsque vous essayez de vous référer ou d'accéder à une variable ou à un objet inexistant, il est généralement lancé une erreur ReferenceError.
try { var x == 5 + y; // Lève une erreur de référence } document.getElementById("result").innerHTML = err.name + "<br>" + err.message; }Voyons un exemple‹/›
Si votre code JavaScript contient des problèmes de syntaxe, une SyntaxError sera déclenchée au moment de l'exécution.
try { eval("alert('Hello)"); // Missing ' will throw an error } document.getElementById("result").innerHTML = err.name + "<br>" + err.message; }Voyons un exemple‹/›
Lorsque la valeur n'est pas du type attendu, une TypeError est levée.
var num = 50; try { num.toUpperCase(); // Vous ne pouvez pas convertir un nombre en majuscules } document.getElementById("result").innerHTML = err.name + "<br>" + err.message; }Voyons un exemple‹/›
Lorsque vous spécifiez un URI (identifiant de ressource unifié) invalide, une URIError est déclenchée.
try { decodeURI("%"); // Vous ne pouvez pas URI décodez le signe pour cent } document.getElementById("result").innerHTML = err.name + "<br>" + err.message; }Voyons un exemple‹/›
Pour une référence complète des propriétés et des méthodes, veuillez visiter notreRéférence des erreurs JavaScript.
La partie de référence contient une description et des exemples de toutes les propriétés et types d'erreur.