我正在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>
5条答案
按热度按时间8gsdolmq1#
我有麻烦得到它,所以我张贴图片显示不同的选项:
Chrome浏览器111.0.5563.64[于2023年3月14日更新]
Chrome浏览器101.0.4951.64[2022年5月27日]
在选项卡
Sources
中:按钮激活后,您可以使用下面的复选框
Pause On Caught Exceptions
:先前版本
chrome 合金32.0.1700.102[2014年2月3日]
一个四个一个x一个五个一个x一个六个一个
chrome 合金27.0.1453.93稳定
fae0ux8s2#
编辑:我回答的原始链接现在无效.较新的URL将是https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions截至2016-11-11.
我知道这个问题有答案,但它不再准确。使用上面的链接^
(link替换为上面编辑的)-现在可以设置它在所有异常或未处理的异常时中断。(注意,您需要在源选项卡中才能看到该按钮。)
Chrome现在还增加了一些其他非常有用的断点功能,比如在DOM更改或网络事件时中断。
通常我不会重新回答一个问题,但我自己也有同样的问题,我发现了这个现在错误的答案,所以我想我应该把这个信息放在这里的人谁后来沿着搜索。
goucqfw63#
Chrome现在通过“暂停所有例外”按钮支持此功能。
要启用它:
请注意,此按钮有多种状态。持续单击此按钮可在以下状态之间切换
n3ipq98p4#
几乎所有的错误都会抛出一个异常,我能想到的唯一不能使用“pause on exceptions”选项的错误是语法错误,它们发生在任何代码执行之前,所以没有地方可以暂停,任何代码都不会运行。
显然,如果异常在try-catch块中,Chrome不会在异常上暂停。它只在未捕获的异常上暂停。我不知道有什么方法可以改变它。
如果您只需要知道异常发生在哪一行(如果异常可重现,则可以设置断点),则catch块的
Error
对象具有stack
属性,该属性显示异常发生的位置。qlckcl4x5#
不幸的是,Chrome中的开发工具似乎无法像Firebug那样“在所有错误时停止”。