javascript - 通用 throw 给出 Expected an object to be thrown lint error

标签 javascript ecmascript-6 polymer eslint throw

下面抛出代码给出 lint 错误 Expected an object to be thrown no-throw-literal

throw { code : 403, message : myMessage };

如果我尝试抛出新错误,我不会得到 eslint,但它会在响应中给出 [Object Object]。

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

有人能告诉我如何解决 Expected an object to be thrown 错误吗?无需删除 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 {
      //...
    }
 }

关于javascript - 通用 throw 给出 Expected an object to be thrown lint error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53080948/

相关文章:

javascript - 在 Google Apps 脚本中使用转译的 ES6 => ReferenceError : "SomeClass" is not defined

javascript - polymer ,基于对象评估元素

polymer - 在造纸厂悬停时更改纸材高度(Polymer 1.0)

javascript - 如何在 Symfony2 中使用 JavaScript 为其他页面生成 URL?

javascript - 在另一个属性中引用元素属性

javascript - Angular 2 - ES6 - 根据复选框值触发表单验证器

javascript - 在Polymer 1.0中,如何通过toggles属性找到 polymer 按钮的状态?

javascript - 制作一个类似于 html5 菜单的 Windows 资源管理器,自动添加新文件/ map

javascript - ionic : how to detect bottom scroll?

node.js - 为什么这个生成器返回一个函数而不是一个值