Chrome中“Pause on uncaught exceptions”功能失效问题咨询
关于Chrome DevTools未捕获异常断点不触发的问题
核心问题出在代码的执行环境:如果是直接在DevTools的Console面板输入这段代码,Chrome的Console会自动捕获顶级执行代码抛出的所有错误,格式化后显示在面板里——这时候这个错误其实是被Console的内部逻辑“接住”了,不属于真正意义上的“未捕获异常”,所以勾选“Pause on uncaught exceptions”不会触发暂停。而“Pause on caught exceptions”能触发,正是因为这个错误被Console捕获了。
正确测试未捕获异常断点的方式:把代码放到页面的脚本中执行,比如:
<script> console.log(the); // 这里抛出的ReferenceError就是真正的未捕获异常 </script>刷新页面后,DevTools就会在错误抛出时触发暂停,完全符合“Pause on uncaught exceptions”的预期行为。
额外验证方法:你可以在Console里执行
setTimeout(() => { throw new Error('test'); }, 1000)——这个异常是在异步定时器回调里抛出的,没有被任何代码捕获,此时“Pause on uncaught exceptions”就会触发暂停,因为Console不会捕获异步回调里的未处理错误。
内容的提问来源于stack exchange,提问作者Petar Todorov
相关产品推荐
相关产品推荐

