Ci-dessous le code de lancement donnant une erreur de peluche Attendait un objet à lancer sans littéral
throw { code : 403, message : myMessage };
si j'essaye lance une nouvelle erreur, je ne reçois pas eslint mais cela donne [Object Object] dans la réponse.
throw new Error({ code : 403, message : myMessage });
Quelqu'un pourrait-il me dire comment corriger Attendait qu'un objet soit jeté erreur? sans supprimer la configuration/règles eslint
throw Object.assign(
new Error(myMessage),
{ code: 402 }
);
Lancez une erreur régulière et étendez-la avec des champs personnalisés.
Vous pouvez également écrire une classe d'erreur réutilisable pour cela:
class CodeError extends Error {
constructor(message, code) {
super(message);
this.code = code;
}
}
throw new CodeError(myMessage, 404);
De cette façon, vous pouvez facilement distinguer les erreurs lors de la capture:
} catch(error) {
if(error instanceof CodeError) {
console.log(error.code);
} else {
//...
}
}
Une autre solution de contournement simple est l'erreur de stockage sur la variable et la levée.
let errorMessage = { code : 403, message : myMessage };
throw errorMessage;