在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://bzwzjz.com/article/dgeejo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作公司 成都网站建设 成都网站制作 成都网站设计 网站制作 成都响应式网站建设公司 网站建设方案 成都网站建设 成都品牌网站建设 企业网站设计 盐亭网站设计 响应式网站建设 成都营销网站制作 公司网站建设 企业网站建设公司 手机网站制作 成都网站制作 网站建设公司 网站制作公司 企业网站设计 上市集团网站建设 成都网站制作