JavaScript - Gestion des erreurs et des exceptions
Salut à toi, futurs magiciens JavaScript ! ? Bienvenue dans notre incroyable aventure dans le monde de la gestion des erreurs en JavaScript. En tant que votre professeur d'informatique de quartier, je suis là pour vous guider à travers cette aventure. Alors, attachez vos ceintures, et plongeons dedans !
Qu'est-ce qu'une erreur ?
Imaginons que vous cuisinez un gâteau ?, et que vous utilisez accidentellement du sel au lieu de sucre. C'est une erreur ! En programmation, les erreurs sont similaires - ce sont des problèmes inattendus qui se produisent lorsque notre code s'exécute. Ceux-ci peuvent être des fautes de frappe, des erreurs logiques, ou même des problèmes avec les données avec lesquelles nous travaillons.
Voici un exemple simple d'une erreur en JavaScript :
console.log(Hello, World!);
Si vous exécutez ce code, vous obtiendrez une erreur parce que nous avons oublié de mettre des guillemets autour de notre texte. JavaScript attend que les chaînes de caractères soient entre guillemets.
Qu'est-ce que la gestion des erreurs ?
La gestion des erreurs est comme avoir un filet de sécurité lorsque vous marchez sur un fil tendu. C'est un moyen de gérer avec grâce les erreurs dans notre code, empêchant notre programme entier de s'effondrer lorsque quelque chose ne va pas.
L'instruction try...catch...finally
L'instruction try...catch...finally
est notre outil principal pour gérer les erreurs en JavaScript. C'est comme un trio de super-héros venant au secours ! ?♀️?♂️?♀️
Voici comment cela fonctionne :
try {
// Code qui pourrait causer une erreur
let result = 10 / 0;
console.log(result);
} catch (error) {
// Code pour gérer l'erreur
console.log("Oups ! Une erreur est survenue :", error.message);
} finally {
// Code qui s'exécute toujours, qu'il y ait une erreur ou non
console.log("Cela s'exécute toujours !");
}
Dans cet exemple :
- Le bloc
try
contient du code qui pourrait causer une erreur (la division par zéro). - Si une erreur se produit, le bloc
catch
la attrape et la gère avec grâce. - Le bloc
finally
s'exécute toujours, qu'il y ait une erreur ou non.
L'instruction throw
Parfois, nous voulons créer nos propres erreurs personnalisées. C'est là que l'instruction throw
devient utile. C'est comme être l'arbitre dans un jeu et siffler une faute ! ?
Voici un exemple :
function checkAge(age) {
if (age < 0) {
throw new Error("L'âge ne peut pas être négatif !");
}
console.log("L'âge est valide :", age);
}
try {
checkAge(-5);
} catch (error) {
console.log("Une erreur a été interceptée :", error.message);
}
Dans ce code, nous lançons une erreur personnalisée lorsque quelqu'un essaie d'utiliser un âge négatif. Le bloc catch
gère alors cette erreur.
La propriété de gestionnaire d'événement onerror
Le gestionnaire d'événement onerror
est comme avoir un gardien vigilant pour votre application JavaScript complète. Il attrape les erreurs qui se produisent n'importe où dans votre code.
Voici comment vous pouvez l'utiliser :
window.onerror = function(message, source, lineno, colno, error) {
console.log("Une erreur est survenue :";
console.log("Message :", message);
console.log("Source :", source);
console.log("Ligne :", lineno);
console.log("Colonne :", colno);
console.log("Objet d'erreur :", error);
return true;
};
// Cela déclenchera le gestionnaire onerror
nonExistentFunction();
Ce code configure un gestionnaire d'erreur global qui attrapera toutes les erreurs non interceptées dans votre application.
Référence de l'objet d'erreur JavaScript
JavaScript fournit plusieurs types d'erreurs intégrés. Jetons un coup d'œil à eux dans un tableau pratique :
Type d'erreur | Description |
---|---|
Error | Le type d'erreur générique |
SyntaxError | Se produit lorsqu'il y a une erreur de syntaxe dans le code |
ReferenceError | Se produit lors de la référence à une variable inexistante |
TypeError | Se produit lorsqu'une valeur n'est pas du type attendu |
RangeError | Se produit lorsqu'un nombre est en dehors de la plage autorisée |
URIError | Se produit lors de l'utilisation de fonctions URI incorrectes |
EvalError | Se produit en relation avec la fonction eval() |
Voici un exemple de la manière dont ces erreurs peuvent se produire :
try {
// SyntaxError
eval("Hello World");
// ReferenceError
console.log(undefinedVariable);
// TypeError
null.f();
// RangeError
let arr = new Array(-1);
// URIError
decodeURIComponent("%");
} catch (error) {
console.log(error.name + ": " + error.message);
}
Chacune de ces lignes lancera un type d'erreur différent, que notre bloc catch
gérera.
Et voilà, mes chers élèves ! Nous avons fait le voyage à travers le pays de la gestion des erreurs JavaScript. Souvenez-vous, les erreurs ne sont pas vos ennemis - elles sont un retour d'information précieux qui vous aide à améliorer votre code. Assumez-les, apprenez d'elles, et bientôt vous les gérerez comme un pro ! ?
Continuez à coder, continuez à apprendre, et n'oubliez pas de vous amuser en cours de route ! À bientôt dans notre prochaîne leçon ! ?
Credits: Image by storyset