在Chrome开发工具中显示JavaScript异常信息

3
我正在使用Chrome开发工具来调试我的JavaScript。当我告诉Chrome“不要在异常处暂停”,并加载我的脚本时,我会得到一个明确的描述,其中正确的行会被突出显示:
var back_buffer = goog.dom.getElement('back_buffer').getContext('2d');
  --> "Uncaught TypeError: Cannot call method 'getContext' of null"

好的,有道理:我的画布元素名称中有一个拼写错误,因此 'getElement' 返回 null。

现在进入我的问题:当我告诉Chrome“暂停未捕获的异常”时,它仍然正确地突出显示了我的脚本中的有问题行,但是现在没有了友好、易懂的错误描述!为什么?即使在调试模式下,我也想看到错误消息,因为它非常有帮助。我四处查找,但无法找到它的任何位置。

有人可以帮忙吗?

5个回答

6
目前似乎没有很好的方法来实现这一点。这是你能够得到的最接近的结果: 在此输入图片描述

3
错误没有显示,因为在进入异常之前,该脚本的执行被暂停了。
它会在错误之前暂停,以便您可以在控制台中调试一些内容。当局部变量不能提供更多信息时,在您所提到的情况下,我倾向于添加一些监视表达式或在控制台中执行一些命令。
例如,对于您的back_buffer情况,您可以添加一个类似于这样的监视表达式goog.dom.getElement('back_buffer'),这样您就可以查看它解析为什么。如果该表达式引发错误,则会在那里看到错误消息,就像在脚本错误发生后一样。
有些人可能不太明显,当脚本执行被停止时,执行上下文与脚本在暂停时的执行上下文相同,因此所有局部变量都可以在控制台中访问,以进行console.log()或console.dir()等操作。
当您将漂亮打印设置为打开状态时,在它暂停的那一行上不会有太多事情发生,因此大多数情况下您无需搜索很长时间即可了解是什么导致错误以及原因。
希望这有所帮助, PM5544。

1

一旦执行,您应该能够在有问题的源代码行下方的红色气泡消息中看到相同的文本。


这是正确的...如果您处于“不暂停异常”模式下!我的问题是关于其他模式,当有用的红色气泡没有显示出来时。 - Lajos Nagy

0

如果你捕获异常并将其发送到日志中,会发生什么:

try
  {
       var back_buffer = goog.dom.getElement('back_buffer').getContext('2d');
  }
catch(err)
  {
        console.log(err);
  }

一旦进入控制台,您可以更详细地检查对象。


0

再做一步,红色气泡就会出现。这是合乎逻辑的,因为它在错误/气泡行为发生之前暂停。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接