未捕获异常的角度中断/暂停
Posted
技术标签:
【中文标题】未捕获异常的角度中断/暂停【英文标题】:Angular Break/Pause on Uncaught Exception 【发布时间】:2018-06-07 14:17:08 【问题描述】:在 Chrome 中,我希望能够在 我的应用程序 中中断/暂停未捕获的异常,但这在 Angular 中似乎不起作用。这可能吗?
看起来 zone.js 捕获了它们并将它们记录到控制台,因此 'pause on exceptions' 功能不起作用,因为它们被捕获了异常。
示例错误:
VM2031:34 ERROR Error: Uncaught (in promise): UnsupportedAuthorityValidation
at resolvePromise (zone.js:824)
at resolvePromise (zone.js:795)
at eval (zone.js:873)
at ZoneDelegate.invokeTask (zone.js:425)
at Object.onInvokeTask (core.js:4744)
at ZoneDelegate.invokeTask (zone.js:424)
at Zone.runTask (zone.js:192)
at drainMicroTaskQueue (zone.js:602)
at <anonymous>
【问题讨论】:
是的 zone.js 通常会捕获来自 Angular 的错误。您仍然可以在 chrome 中打开源文件并在其中添加断点,但这可能很困难,因为 Angular/Typescript/(如果您使用的是 webpack,则可能是 webpack)输出的代码可能与您编写的代码不同。我会考虑通过你的 IDE 添加断点,你有什么 IDE? 我正在使用 VS Code。是的,我正在使用 Webpack。 @TommyMay 我觉得我试图解释一些我没有做过的事情会对你造成伤害。我使用 IntelliJ,它支持使用 Typescript 源映射进行调试。这篇文章似乎相当于 VS Code medium.com/@dupski/…Good Luck! 是否有某个事件导致异常被抛出?例如。点击一个按钮。 @spottedmahn 你找到办法了吗? 【参考方案1】:启用 Pause On Caught Exceptions 复选框怎么样?
一般来说,很多人没有意识到 DevTools 有很多不同的断点,可以在不同的场景中触发。也许您可以扫描Breakpoints Guide,看看这些其他断点类型中的一种是否会让您接近问题?如果是,请更新您的问题以说明您面临的问题以及您使用的断点类型。
【讨论】:
我已经尝试过了,它会破坏库中所有类型的异常。 是否有一个位置可以处理捕获的异常?也许您可以在catch
块中设置一个 conditional breakpoint,以便您只暂停与您的问题相关的异常。以上是关于未捕获异常的角度中断/暂停的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Google Chrome Canary 中打开未捕获异常时暂停?
如何处理未捕获(承诺)DOMException:播放()请求被暂停()调用中断
启用“仅我的代码”时,Visual Studio 2015 JavaScript 调试不会捕获未处理的异常