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 '暂停未捕获的异常'时,它仍然正确地突出显示我脚本中的违规行,但现在漂亮、易懂的错误描述已经消失了!怎么来的?即使在调试模式下,我也希望看到错误消息,因为它非常有用。我四处寻找,但在任何地方都找不到。

有人可以在这里帮忙吗?

4

5 回答 5

6

目前似乎没有很好的方法来做到这一点。这是你能得到的最接近的: 在此处输入图像描述

于 2012-10-13T18:19:24.997 回答
3

该错误未显示,因为该脚本的执行在它进入异常之前被暂停。

它在错误之前暂停,因此您可以在控制台中调试一些东西。在您谈论的情况下,我倾向于做的事情,并且范围变量没有提供更多信息,是添加一些监视表达式或在控制台中执行一些命令。

例如,在您的 back_buffer 案例中,您可以添加一个像这样的监视表达式,goog.dom.getElement('back_buffer')以便您可以看到它解析为什么。如果该表达式导致错误,您将在那里看到错误消息,就像发生脚本错误后一样。

对某些人来说,当脚本执行停止时,执行上下文与脚本暂停时的执行上下文相同,这对某些人来说可能并不完全明显,因此控制台中的所有局部变量都可以通过 console.log() 或console.dir() 或任何东西。

当您将漂亮的打印设置为打开时,在它暂停的那一行上不会发生太多事情,所以大多数情况下您不必搜索很长时间来了解导致错误的原因和原因。

希望对您有所帮助,PM5544。

于 2012-10-13T23:36:59.940 回答
1

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

于 2012-10-04T07:31:52.107 回答
0

只需再执行一个“步骤”,就会出现红色气泡。这是合乎逻辑的,因为它在错误/冒泡行为发生之前暂停。

于 2012-10-16T15:35:58.353 回答
0

如果您捕获异常并将其发送到日志怎么办:

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

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

于 2012-10-16T15:53:22.517 回答