这篇文章给大家介绍在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(); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java代理模式的优缺点分别有哪些?(Java代理模式有哪些优缺点)
- Java 内存泄露具体有哪些表现呢?(java内存泄露的表现有哪些)
- Java 与 Office 结合是否适合报表生成?(java office 适合报表生成吗 )
- 如何有效提升 java corn 表达式的性能?(如何优化java corn表达式的性能 )
- PHP数据类型转换常见误区解析
- 如何在 Java 中高效地创建列表?(如何在Java中创建列表)
- Java中dubbo的最佳实践案例有哪些?(java中dubbo有哪些最佳实践案例)
- 如何通过 Java 代码获取当前时间戳?(如何使用Java获取当前时间戳)
- 如何使用 Java 编写一个 circular 类?(怎么用java编写一个circular类)
- 在 Java 中如何安全地进行 SQL 拼接?(Java中怎么安全的进行SQL拼接)
猜你喜欢
AI推送时光机在Java子线程中怎么对异常进行处理
后端开发2023-05-31
怎么在Java项目中对异常进行处理
后端开发2023-06-06
怎么在python中使用except对异常进行处理
后端开发2023-06-14
Spring Boot中怎么对异常进行处理
后端开发2023-05-31
NodeJs中怎么对数据库异常进行处理
后端开发2024-04-02
怎么在Java中对多线程进行排序
后端开发2023-06-14
如何在Python中使用Selenium对异常进行处理
后端开发2023-06-06
怎么对java多线程数据进行分页处理
后端开发2023-06-14
在Java项目中运行异常处理时出现异常怎么解决
后端开发2023-05-31
怎么在java中使用finally处理异常
后端开发2023-06-14
怎么在Python中对Args进行处理
后端开发2023-06-14
怎么在pandas apply中对并行进行处理
后端开发2023-06-06
Java中怎么对日期类进行处理
后端开发2023-05-31
Java中怎么对线程通信进行调试
后端开发2023-06-17
怎么在Python中对邮件进行处理
后端开发2023-06-14
咦!没有更多了?去看看其它编程学习网 内容吧