原来很少关注过java线程的异常处理方式,今天了解了一下java线程设计思想中关于异常处理的方式
检查异常
这个比较简单,java中不允许在线程代码片段中向外抛出检查异常给
运行时异常
java线程的设计思想是:线程是独立运行的代码片段,相互之间不应该相互影响。
即线程A抛出的异常是不会影响到线程B,即使线程B是线程A的父线程。
当抛出一个未捕获的运行时异常时,线程会被停止,对应线程状态中的 死亡状态。
跨线程处理异常
Thead类中提供了一种跨线程处理异常的方式,可以用java.lang.Thread#setUncaughtExceptionHandler来设置线程异常的回调函数。
值得注意的是,回调函数仍然实在抛出异常的线程中被调用。