java DefaultUncaughtExceptionHandler 详解
在Java程序运行时,一些非受检异常可能会导致程序崩溃,比如NullPointerException、ArrayIndexOutOfBoundsException等等,这些异常都是由JVM抛出的,如果不对这些异常进行处理,小则线程运行中突然退出,大则整个程序崩溃。理想的场景下,每一个非受检异常都应该被捕获并进行处理,但是在实际开发中,我们往往会忽略一些异常,这些异常可能是由于程序员的疏忽导致的,也可能是由于程序员无法预知的原因导致的,比如第三方库抛出的异常。
为了避免这些异常导致程序崩溃,Java提供了一个全局的异常处理器,即DefaultUncaughtExceptionHandler,它可以捕获所有未被捕获的异常,从而避免程序崩溃。
DefaultUncaught的使用示例如下:
1 | public class UncaughtExceptionHandle { |
上述的代码会将未捕获的异常打印到日志中,如果你希望打印至标准输出或标准输出,可以将log替换为:
1 | // 标准输出 |