debugging 如何在使用错误边界时中断异常

yftpprvb  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(165)

我正在使用<ErrorBoundary>组件,如docs on error boundaries中所述。
然而,Chrome的devtool设置“在异常时中断”似乎不再适用于在抛出的代码行上暂停执行,这并不奇怪,因为错误边界基本上捕获了所有异常。
如果我手动删除<ErrorBoundary>,我可以让Chrome在异常时中断,但我正在寻找一种方法,基本上禁止它捕捉异常,而不必像那样临时修改源代码。我该怎么做呢?有没有一个“开发模式”设置,使错误边界重新抛出异常?我肯定不是第一个想要Chrome“在异常时中断”的人。当我在React项目中使用错误边界时不会变得无用?
我尝试在componentDidCatch()中放置断点,但不幸的是,这不会在调试器中给予原始调用堆栈,因此它不是很有用。我希望能够检查抛出错误的调用堆栈,检查局部变量和所有有用的东西。
干杯!

8ljdwjyq

8ljdwjyq1#

事实证明,我所需要的几乎可以通过在Chrome devtools中启用“捕获异常时暂停”来实现。这样,即使ErrorBoundary捕获了错误,我仍然会在原始错误上获得一个断点。

唯一需要注意的是,如果在应用加载时启用此选项,则会遇到 * 大量 * 捕获的错误,因为各种多边形填充和初始化代码会使用try... catch块嗅探运行时状态。因此,对于我自己的错误,这些错误仅发生在初始加载时,在正确的位置单击此选项是一个相当微妙的舞蹈。

相关问题