我正在寻找Chrome中与Firebug“破解所有错误”功能相同的功能。在“脚本”标签中,Chrome会“暂停所有例外”,但这与打破所有错误并不完全相同。
例如,在使用以下代码加载页面时,我希望Chrome在foo.bar = 42
行中断。相反,即使启用“暂停所有异常”,我也无法获得预期的结果。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
function doError() {
foo.bar = 42;
}
window.onload = function() {
try {
doError();
} catch (e) {
console.log("Error", e);
}
}
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:259)
我遇到了麻烦所以我发布了显示不同选项的图片:
非常相似的用户界面,因为至少Chrome 38.0.2125.111 [2014年12月11日]
在标签Sources
中:
Screenshot from Chrome 50.0.2661.75
当按钮激活时,您可以Pause On Caught Exceptions
使用下面的复选框:
Chrome 27.0.1453.93 稳定
答案 1 :(得分:204)
修改:我回复的原始链接现在无效。截至2016-11-11,较新的网址为https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions。
我意识到这个问题有一个答案,但它不再准确。 使用上面的链接^
(链接替换为上面编辑过的) - 您现在可以将其设置为中断所有异常或仅处理未处理的异常。 (请注意,您需要位于来源标签中才能看到该按钮。)
Chrome现在还添加了一些其他非常有用的断点功能,例如打破DOM更改或网络事件。
通常情况下,我不会重新回答一个问题,但我自己也有同样的问题,而且我发现这个现在错误的答案,所以我想我会把这些信息放在这里给那些后来搜索的人。 :)
答案 2 :(得分:17)
Chrome现在支持“暂停所有例外”按钮。
启用它:
请注意,此按钮具有多个状态。继续单击按钮以在
之间切换答案 3 :(得分:1)
几乎任何错误都会引发异常。我能想到的唯一错误是“暂停异常”选项,这种错误是在任何代码执行之前发生的语法错误,因此无论如何都没有地方可以暂停,并且没有任何代码会运行。 / p>
显然,如果Chrome在try-catch块中,它不会暂停。它只会暂停未捕获的异常。我不知道有什么方法可以改变它。
如果你只需要知道发生异常的行(那么你可以设置一个断点,如果异常是可重现的),给catch块的Error
对象有一个stack
属性,显示异常发生的位置。
答案 4 :(得分:1)
不幸的是,Chrome中的开发者工具似乎无法像Firebug那样“停止所有错误”。