Universal Catch声明

nru*_*n29 2 java error-handling exception

我想知道是否有办法编写一个catch语句,只要在程序中抛出任何异常就会激活它.谢谢!

ass*_*ias 14

到目前为止你收到的答案的问题是,如果你在main中包含一个"catch-all",它只会捕获主线程上抛出的异常.

捕获所有未捕获异常的更健壮的方法是DefaultUncaughtExceptionHandler为您的项目设置一个,例如,在main的开头,您可以调用:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread t, Throwable e) {
        //log the exception
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意,除了登录之外做任何事情通常是不合理的,因为Throwable可能是任何事情,包括不可恢复的错误.