异常处理


如果任何 AsyncHook 回调抛出,则应用程序将打印堆栈跟踪并退出。 退出路径确实遵循未捕获异常的路径,但所有 'uncaughtException' 监听器都被删除,从而强制进程退出。 除非应用程序使用 --abort-on-uncaught-exception 运行,否则仍将调用 'exit' 回调,在这种情况下,将打印堆栈跟踪并且应用程序退出,留下核心文件。

这种错误处理行为的原因是这些回调在对象生命周期中的潜在不稳定点运行,例如在类构造和销毁期间。 因此,认为有必要迅速关闭进程,以防止将来意外中止。 如果进行综合分析以确保异常可以遵循正常的控制流程而不会产生意外的副作用,这可能会在未来发生变化。