Angular在未捕获异常时中断/暂停

3
在Chrome中,我想要能够在我的应用程序中捕获未捕获的异常并暂停执行,但在Angular中似乎无法实现。这是否可能?看起来zone.js会捕获它们并将其记录到控制台,因此'暂停异常'功能无法正常工作,因为它们是已被捕获的异常。

chrome pause screenshot


示例错误:
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/(如果您正在使用它) 可能输出的代码与您编写的代码不同。我建议您通过 IDE 添加断点,您使用的是哪个 IDE? - Tommy May
我正在使用VS Code。是的,我正在使用Webpack。@TommyMay - spottedmahn
1
我觉得如果我试图解释我没有做过的事情,那么我会对你不利。 我使用IntelliJ,它支持通过使用TypeScript源映射进行调试。 这篇文章似乎是VS Code的等效方法 https://medium.com/@dupski/debug-typescript-in-vs-code-without-compiling-using-ts-node-9d1f4f9a94a 祝好运! - Tommy May
有没有某个特定的事件会导致异常被抛出?例如,点击一个按钮。 - Kayce Basques
@spottedmahn,你找到解决方法了吗? - Skarlinski
很抱歉,@Skarlinski。 - spottedmahn
1个回答

0

启用捕获异常时暂停复选框怎么样?

通常,许多人没有意识到 DevTools 有很多可以在不同场景下触发的不同断点。也许你可以扫描一下断点指南,看看这些其他断点类型中是否有一个能够接近该问题?如果是,请更新你的问题,说明你遇到的问题以及使用的断点类型。


我已经尝试过了,它会在库中的所有异常类型上出现错误。 - spottedmahn
1
有没有一个单一的位置来处理捕获的异常?也许你可以在catch块中设置一个条件断点,这样你只会在与你的问题相关的异常上暂停。 - Kayce Basques

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接