通用抛出给期望的对象抛出的皮棉错误

时间:2018-10-31 10:12:52

标签: javascript ecmascript-6 polymer eslint throw

下面的抛出代码给出棉绒错误预期要抛出的对象不丢字

throw { code : 403, message : myMessage };

如果我尝试引发新错误,我不会被拖延,但会在响应中显示[Object Object]。

throw new Error({ code : 403, message : myMessage });

有人可以告诉我如何解决预期要抛出的对象错误吗?无需删除eslint config / rules

2 个答案:

答案 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;