JavaScript:有没有办法让Chrome浏览器打破所有的错误?

我正在寻找一个相当于Chrome的“打破所有错误”function的萤火虫。 在“脚本”标签中,Chrome浏览器会“暂停所有例外”,但这与打破所有错误并不完全相同。

例如,当用下面的代码加载一个页面时,我希望Chrome在foo.bar = 42这行上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> 

你可以尝试在这个页面上面粘贴的代码或使用这个jsFiddle 。

编辑: 我回答的原始链接现在无效 。新的url截至2016年11月11日为https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions

我意识到这个问题有一个答案,但它不再准确。 使用上面的链接^


(链接由上面编辑replace) – 你现在可以设置它打破所有例外或只是未经处理的。 (请注意,您需要在Sources选项卡中查看button。)

Chrome现在还添加了一些其他非常有用的断点function,例如打破DOM更改或networking事件。

通常我不会回答一个问题,但是我自己也有同样的问题,而且我发现这个现在是错误的答案,所以我想我会把这些信息放在这里供后来search的人使用。 🙂

我有麻烦得到它,所以我张贴图片显示differents选项:

Chrome 58.0.3029.96 [2017年5月30日]

真正的,因为至lessChrome 38.0.2125.111 [2014年11月11日]

在标签中Sources在这里输入图像描述 Screenshot for Chrome 50.0.2661.75

当button被激活时,您可以使用下面的checkboxPause On Caught Exceptions在这里输入图像描述


之前的版本

Chrome 32.0.1700.102 [03 feb 2014]

在这里输入图像描述

在这里输入图像描述在这里输入图像描述在这里输入图像描述

Chrome 27.0.1453.93稳定

调试选项

Chrome现在支持“暂停所有例外”button。

要启用它:

  • 转到Chrome开发人员工具中的“来源”标签
  • 点击窗口底部的“暂停”button,切换到“暂停所有例外模式”。

请注意,此button有多个状态。 继续点击button进行切换

  • “暂停所有例外” – button颜色浅蓝色
  • “暂停未捕获的exception”,button是紫色的
  • “不要暂停例外” – button是灰色的

几乎任何错误都会抛出exception。 唯一的错误,我能想到的,将不会与“暂停例外”选项是语法错误,这是在任何代码执行之前发生的,所以没有地方暂停,没有代码将运行。

显然,如果它在try-catch块内,Chrome将不会暂停执行exception。 它只会暂停未捕获的exception。 我不知道有什么方法来改变它。

如果您只需要知道exception发生了什么行(那么如果exception是可重现的,那么您可以设置一个断点),给予catch块的Error对象具有一个stack属性,用于显示发生exception的位置。

不幸的是,Chrome浏览器中的开发者工具似乎无法像“萤火虫”那样“停止所有错误”。