在Java子线程中怎么对异常进行处理-创新互联
                                            这篇文章给大家介绍在Java子线程中怎么对异常进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

常见错误
也许有人会觉得,很简单嘛,直接在父线程启动子线程的地方try ... catch一把就可以了,其实这是不对的。
原因分析
让我们回忆一下Runnable接口的run方法的完整签名,因为没有标识throws语句,所以方法是不会抛出checked异常的。至于RuntimeException这样的unchecked异常,由于新线程由JVM进行调度执行,如果发生了异常,也不会通知到父线程。
public abstract void run()
解决办法
那么,如何在父线程中捕获来自子线程的异常呢?楼主想到了3种常用方法,分享给大家。
方法一:子线程中try... catch...
最简单有效的办法,就是在子线程的方法中,把可能发生异常的地方,用try ... catch ... 语句包起来。子线程代码:
public class ChildThread implements Runnable {
 public void run() {
  doSomething1();
  try {
   // 可能发生异常的方法
   exceptionMethod();
  } catch (Exception e) {
   // 处理异常
   System.out.println(String.format("handle exception in child thread. %s", e));
  }
  doSomething2();
 }
}                                                分享题目:在Java子线程中怎么对异常进行处理-创新互联
转载注明:http://www.scyingshan.cn/article/dgeejo.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 