Tag: 未捕获exception

为我的应用程序的所有线程定义一个全局UncaughtExceptionHandler

我想在我的Java应用程序中定义一个应用程序级别UncaughtExceptionHandler ,如果在我的应用程序的一个线程中抛出未捕获的exception,则调用该应用程序。 我知道可以为一组线程( ThreadGroup )定义一个未捕获的exception,我实际上正在使用它,但我想为没有定义自己的未捕获exception处理程序的线程定义一个全局未捕获的exception,或者是没有与一组定义了默认exception处理程序的线程相关联 。 所以例如我想达到这样的东西: 1° LEVEL —> Call thread own UncaughtExceptionHandler —> 2° LEVEL Call Thread Group UncaughtExceptionHandler —> 3° LEVEL Call application(default) UncaughtExceptionHandler 简单来说,我想覆盖默认的UncaughtExceptionHandler并定义我自己的处理程序,而不是在System.err上打印堆栈跟踪(这是默认行为)。 例如,在C#.NET中,我执行类似的操作, 处理应用程序的Main()方法中的未处理和线程exception事件处理程序: AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 即使在Java中也可以完成? 如何在Java中覆盖默认的UncaughtExceptionHandler?