在main()中记录Throwable

ass*_*ias 3 java throwable

Throwable由于不同帖子中列出的原因,不建议捕捉.但是,有一个像下面这样的主要结构是否有意义?如果删除了Throwable行,则不会记录错误.

public static void main(String[] args) {
    try {
        launchMyApplication();
    } catch (SomeCheckedException e) {
        //recover if you can, log it if you can't
    } catch (Exception e) {
        //recover if you can (unlikely), log it if you can't
    } catch (Throwable e) {
        //Don't try to recover, but log it
        logger.error("Oops: {}", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

Con*_*Del 10

实现这种方式只会处理主线程上抛出的throwable.

解决此问题的最佳方法是使用Thread.setDefaultUncaughtExceptionHandler().