Java经验点滴:处理没有被捕获的异常
时间:2005-11-24 | 作者:CSDN | 阅读:164
在我们的程序中并不是所有的异常都被捕获,有些是因为我们不想捕获,因为我们认为那些异常没必要捕获
而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像NullPointerException,ClassCastException,IndexOutOfBoundsException这些RuntimeException。我们也许可以在所有它们有可能发生的地方去捕获它们,但这确实是很坏的解决方案。但在有些情况下,我们又必须在一些未捕获的异常发生时做一些事情,像释放资源、让程序离开错误状态等等。
这里通过ThreadGroup提供的一个方法,解决了这个问题,让我们的程序可以变得更健壮。ThreadGroup提供一个uncaughtException回调方法,当线程组中的线程有未被捕获的异常发生时,JVM就会去调用这个方法。

/*当有未被捕获的异常发生导致线程停止时,这个方法就会被虚拟机调用,我们只要在自己的ThreadGroup子类中override这个方法,在其中对异常进行相应的处理*/

而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像NullPointerException,ClassCastException,IndexOutOfBoundsException这些RuntimeException。我们也许可以在所有它们有可能发生的地方去捕获它们,但这确实是很坏的解决方案。但在有些情况下,我们又必须在一些未捕获的异常发生时做一些事情,像释放资源、让程序离开错误状态等等。
这里通过ThreadGroup提供的一个方法,解决了这个问题,让我们的程序可以变得更健壮。ThreadGroup提供一个uncaughtException回调方法,当线程组中的线程有未被捕获的异常发生时,JVM就会去调用这个方法。

/*当有未被捕获的异常发生导致线程停止时,这个方法就会被虚拟机调用,我们只要在自己的ThreadGroup子类中override这个方法,在其中对异常进行相应的处理*/

福利游戏
相关文章
更多-
- Java安装教程
- 时间:2017-12-07
-
- Java环境变量配置图文教程
- 时间:2017-12-07
-
- 如何为 Java 配置代理设置?
- 时间:2017-12-07
-
- Java是做什么的?为何下载Java?
- 时间:2017-12-07
-
- 如何使用记事本编写java程序
- 时间:2017-06-02
-
- Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
- 时间:2017-05-27
-
- js实现的倒计时按钮实例
- 时间:2017-02-16
-
- js几秒以后倒计时跳转
- 时间:2017-02-16
精选合集
更多大家都在玩
大家都在看
更多-
- 2025币圈行情官网:全球数字资产权威信息平台
- 时间:2025-04-02
-
- Coinbase App下载指南2025
- 时间:2025-04-02
-
- 传小米汽车内测“安全分Beta”:可评估驾驶行为 降低事故风险
- 时间:2025-04-02
-
- 币圈盘前交易查看:实时数据获取指南
- 时间:2025-04-02
-
- AOC新款27寸显示器上市:4K 240Hz首发7499元
- 时间:2025-04-02
-
- BEVM揭秘:提升区块链性能的革命性方案
- 时间:2025-04-02
-
- 虚拟币vs股票:交易机制与投资差异
- 时间:2025-04-02
-
- 比特币十年价格走势图(2015-2025)及预测
- 时间:2025-04-02