【问题标题】:How to access custom error object thrown by npm module [Error: [object Object]]如何访问 npm 模块抛出的自定义错误对象 [错误:[对象对象]]
【发布时间】:2016-08-26 17:05:24
【问题描述】:

npm 模块会生成这种格式的错误。

throw new Error(error.data.errors)

error.data.errors 在哪里

{ email: [ 'is invalid' ] }

当我尝试在代码的 catch 块中访问它时,它会显示为

[Error: [object Object]]

如何从我的 catch 块中访问原始错误/错误消息?

【问题讨论】:

  • 能否请您发布您发现错误的代码?
  • 不要抛出错误。处理它。使用回调返回它。然后你可以作为 POJO 访问它。

标签: javascript arrays node.js object error-handling


【解决方案1】:

我只是做了一些实验,在这种情况下您似乎无能为力。看起来 JavaScript 在抛出错误消息时会调用 .toString()。默认情况下,所有对象都是"[object Object]"

据我所知,解决方法是打开一个拉取请求,将错误的抛出更改为以下内容:

throw new Error(JSON.stringify(error.data.errors));

通过此更改,您可以在捕获错误时解析 JSON。

try {
  // Whatever functionality causes the error.
} catch (e) {
  var errors = JSON.parse(e.message);
}

【讨论】:

  • 谢谢。我已经提交了 PR 并且被接受了。现在可以访问错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 2022-07-20
  • 2018-09-28
  • 2011-08-07
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多