Chrome:打印控制台的异常详细信息

uri*_*ish 5 javascript google-chrome google-chrome-devtools

如何从我的代码中打开chrome devtools中的Exception的堆栈跟踪?

我尝试了以下方法:

 function doSomething() { 
     undefined(); // This throws an exception
 }

 try {
      doSomething();
 } catch (e) {
      console.error("Exception thrown", e);
 }
Run Code Online (Sandbox Code Playgroud)

但这会产生以下结果:

 Exception thrown TypeError {}
Run Code Online (Sandbox Code Playgroud)

如果我展开它旁边的箭头,它会指向我调用console.error()的行,所以我无法看到原始错误实际发生的位置.

在控制台输出中包含原始错误信息(包括消息和完整堆栈跟踪到发生错误的确切位置)的最佳方法是什么?

Qwe*_*rty 7

您可以将错误输出为对象

console.error("%O", e)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用字符串替换


Kon*_*nel 5

对象错误具有属性stack。打印出来。

console.error("Exception thrown", e.stack);
Run Code Online (Sandbox Code Playgroud)

请注意,该stack属性未标准化,仅由基于V8的浏览器+ IE使用。Firefox使用不同的约定。

  • 看来Firefox现在也使用了`stack`:http://stackoverflow.com/questions/147891/javascript-exception-stack-trace (2认同)