Les erreurs sont utiles pour signaler que quelque chose ne va pas ou est inattendu dans un programme ou dans un bout de code.
Ce sont des objets JavaScript.
La propriété principale de cet objet est message :
const error = new Error('Oops, something went wrong');
console.log(error.message);
// => "Oops, something went wrong"
Avec la syntaxe throw, tu peux lever une erreur.
throw new Error('Oops');
Lorsqu'une erreur est levée, l'exécution en cours s'arrête et reprend dans le premier bloc catch de la pile d'appels.
try {
throw new Error('Oops');
} catch (error) {
console.log(error.message);
// => "Oops"
}
Comme pour n'importe quelle classe en JavaScript, des sous-classes peuvent hériter d'Error pour créer des erreurs personnalisées à l'aide du mot-clé extends.
La syntaxe instanceof vérifie si l'erreur interceptée est une instance d'une sous-classe particulière d'Error.
class CustomError extends Error {}
try {
// ... Code that may throw an error
} catch (error) {
if (error instanceof CustomError) {
console.log('The error thrown is an instance of the CustomError');
}
}
En plus de l'objet Error, il existe d'autres objets d'erreur intégrés. Tu peux en savoir plus à ce sujet ici
Tu peux aussi définir ton propre type d'erreur personnalisé en créant une classe qui étend l'un des types d'erreurs intégrés
class MyCustomError extends Error {}
Bien que la syntaxe throw serve généralement à lever un objet d'erreur, JavaScript est souple et te laisse lever une string, un null ou n'importe quel type primitif.
Bien que cela ne soit pas standard en JavaScript, la plupart des environnements JavaScript implémentent une propriété stack sur les objets d'erreur, ce qui te permet d'obtenir la trace de pile de l'erreur qui a été levée.