下面的抛出代码给出棉绒错误预期要抛出的对象不丢字
throw { code : 403, message : myMessage };
如果我尝试引发新错误,我不会被拖延,但会在响应中显示[Object Object]。
throw new Error({ code : 403, message : myMessage });
有人可以告诉我如何解决预期要抛出的对象错误吗?无需删除eslint config / rules
答案 0 :(得分:7)
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 :(得分:2)
另一个简单的解决方法是在变量和抛出上存储错误。
let errorMessage = { code : 403, message : myMessage };
throw errorMessage;