Lintエラーを発生させるスローコードの下スローされるオブジェクトがスローされないことを期待
throw { code : 403, message : myMessage };
throw new Errorを試してみると、eslintが表示されませんが、応答に[Object Object]が表示されます。
throw new Error({ code : 403, message : myMessage });
誰かが修正方法を教えてもらえますかオブジェクトがスローされると予想されましたエラー? eslint構成/ルールを削除せずに
throw Object.assign(
new Error(myMessage),
{ code: 402 }
);
通常のエラーをスローし、カスタムフィールドで拡張します。
そのための再利用可能なエラークラスを書くこともできます:
class CodeError extends Error {
constructor(message, code) {
super(message);
this.code = code;
}
}
throw new CodeError(myMessage, 404);
そうすれば、キャッチ時にエラーを簡単に区別できます。
} catch(error) {
if(error instanceof CodeError) {
console.log(error.code);
} else {
//...
}
}
もう1つの簡単な回避策は、変数の格納エラーとスローです。
let errorMessage = { code : 403, message : myMessage };
throw errorMessage;