我正在使用Chrome开发工具来调试我的JavaScript。当我告诉Chrome“不要暂停异常”并加载我的脚本时,我会清楚地了解突出显示正确行的错误:
var back_buffer = goog.dom.getElement('back_buffer').getContext('2d');
--> "Uncaught TypeError: Cannot call method 'getContext' of null"
好的,这是有道理的:我的canvas元素名称中有一个拼写错误,因此'getElement'返回null。
现在回答我的问题:当我告诉Chrome'暂停未捕获的异常'时,它仍会正确地突出显示我脚本中的违规行,但现在这个漂亮,可理解的错误描述已经消失了!怎么会?即使在调试模式下,我也希望看到错误消息,因为它非常有用。我四处乱窜,却无法在任何地方找到它。
有人可以帮忙吗?
答案 0 :(得分:6)
目前似乎没有好办法。这是你能得到的最接近的:
答案 1 :(得分:3)
错误未显示,因为该脚本的执行在进入异常之前暂停。
它在错误发生之前暂停,因此您可以在控制台中调试一些内容。 在你谈到的情况下,我倾向于做的事情,以及范围变量没有提供更多信息,是在控制台中添加一些监视表达式或执行一些命令。
在你的back_buffer案例中,你可以添加一个像goog.dom.getElement('back_buffer')
这样的监视表达式,这样你就可以看到它解析的内容。如果该表达式导致错误,您将看到错误消息,就像发生脚本错误一样。
对于某些人来说,当脚本执行暂停时,执行上下文与脚本暂停时的执行上下文相同,因此可能并不完全明显,因此所有本地变量都可以在控制台中访问console.log ()或console.dir()或任何其他内容。
当你打印出漂亮的打印设置时,在它停止的那一行上没有那么多,所以大多数情况下你不应该长时间搜索以了解导致错误的原因以及原因。< / p>
希望它有所帮助, PM5544。
答案 2 :(得分:1)
执行后,您应该能够在违规的源代码行下面的红色气泡消息中看到相同的文字。
答案 3 :(得分:0)
再做一次'Step',会出现红色气泡。这是合乎逻辑的,因为它在错误/气泡行为发生之前暂停。
答案 4 :(得分:0)
如果您捕获异常并将其发送到日志,该怎么办:
try
{
var back_buffer = goog.dom.getElement('back_buffer').getContext('2d');
}
catch(err)
{
console.log(err);
}
进入控制台后,您可以更详细地检查对象。