先看一个线程中报错的例子:
很显然,程序在控制台输出空指针,在java的多线程技术中,可以对多线程中的异常进行"捕捉",使用的是UncaughtExceptionHandler类,从而可以对发生的异常进行有效的处理。
看下一个例子:
运行结果如下:
由此可见,已经捕捉到了线程1的异常,但是并没有捕捉到线程2的异常,这是因为setUncaughtExceptionHandler方法只是针对指定的线程设置处理器。在线程技术中,还可以使用setDefaultUncaughtExceptionHandler方法来针对所有的线程设置异常处理类。
看以下代码:
由此可见,setDefaultUncaughtExceptionHandler针对所有的线程捕捉到了异常,这样大家就可以对线程中的异常进行处理了