Les erreurs

Voir la vidéo
Description Sommaire

Parfois nos fonctions vont recevoir des paramètres qui ne conviennent pas et il faudra être capable de renvoyer une erreur quand cela arrive. Il est possible de renvoyer une erreur à l'aide de l'opérateur throw.

function setNotes (notes) {
    if (!Array.isArray()) {
        throw new Error('Les notes doivent être un tableau')
    }
    this.notes = notes
}

L'objet Error sera construit avec une chaine de caractères qui permettra de décrire la raison de l'erreur. On pourra aussi lui passer un objet en second argument qui contiendra une propriété cause qui permettra de donner plus d'informations sur la cause de l'erreur.

Le throw va faire remonter l'erreur et bloquer le script si elle n'est pas capturée. Il est possible de capturer les erreurs en utilisant le try...catch

try {
    // du code qui peut renvoyer des erreurs
} catch (e) {
    // Ce code sera éxécuté si il y a eu une erreur
}

Il est possible de re-envoyer une erreur et d'utiliser la cause pour conserver la cause originale du problème

try {
    // du code qui peut renvoyer des erreurs
    // a plusieurs endroits 
} catch (e) {
    throw new Error("Impossible de faire l'action", {cause: e})
}

Vous pouvez aussi créer des classes d'erreur personnalisées pour pouvoir les identifier par la suite

class PromptError extends Error{

    constructor(originalPrompt) {
        super(, {cause: originalPrompt})
    }

}

On peut ensuite utiliser cette erreur à la place de la classe Error

function promptInt (msg) {
    const n = prompt(msg) * 1
    if (Number.isNaN(n)) {
        throw new PromptError("Le nombre n'est pas valide", {cause: msg})
    }
    return n
}
Publié
Technologies utilisées
Auteur :
Grafikart
Partager