在javascript中打印错误对象

时间:2018-02-01 13:23:26

标签: javascript error-handling

在我的promise链中抛出一个Error对象时,我会附加一个“details”属性,以便处理程序可以知道在最终的catch块中如何处理它。

如果启用了日志记录,我在链的一部分所做的就是记录错误然后重新抛出它:

.somePartOfThePromiseChain
.catch(err => {
            console.log("ERROR");
            console.log(err.details);
            debugger;
            throw err;
          });

这样可行,但是,如果我想要打印整个错误我没有按预期得到一个对象,但看起来不同的东西是这样的:

Error: My error description here
    at API.js:105
    at <anonymous>

虽然我期待Chrome开发工具中常见的可折叠对象格式。

我不确定为什么会发生这种情况,因为我基本上只想打印Error对象并在调试时查看其成员。这与我重新抛出错误无关,正如你想象的那样。

非常感谢。

2 个答案:

答案 0 :(得分:2)

console.dirMDNChrome devtools docs)在大多数游戏机上都这样做:

try {
  const e = new Error();
  e.details = "details go here";
  throw e;
} catch (ex) {
  console.dir(ex);
}
(Look in the real console.)

答案 1 :(得分:0)

尝试将其包装在另一个对象中。

类似的东西:

console.log( {error} );