java线程对异常的处理

1.在Run 方法中是不能抛出受检异常,但是可以抛出运行异常.
2.线程抛出异常的时候都会被中断,所有线程都一样.
3.默认情况下线程的未受检异常,是被线程组ThreadGroup的uncaughtException方法处理的.所以可以通过覆盖该线程组的这个方法可以修改处理该线程的未受检异常.或者通过设置默认setUncaughtException 方法来设置.
默认情况下所有线程的未受检异常都会将异常信息打印到System.err,虽然主线程无法catch分支线程的异常.
但是,在线程池中的线程抛出的未受检异常,会被java.util.concurrent.ThreadPoolExecutor 所catch,这样一来线程池中的所有线程抛出的RuntimeException都无法被 uncaughtException 所捕获拦截,也无法打印到system.err
但是

参考:Java ExecutorService线程池中的小坑——关于线程池中抛出的异常处理
参考:java多线程中的异常处理

posted @ 2015-09-24 23:08  predisw  阅读(268)  评论(0编辑  收藏  举报