Java经验点滴:处理没有被捕获的异常
文章来源:csdn 作者:enoeht
在我们的程序中并不是所有的异常都被捕获,有些是因为我们不想捕获,因为我们认为那些异常没必要捕获
而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像NullPointerException,ClassCastException,IndexOutOfBoundsException这些RuntimeException。我们也许可以在所有它们有可能发生的地方去捕获它们,但这确实是很坏的解决方案。但在有些情况下,我们又必须在一些未捕获的异常发生时做一些事情,像释放资源、让程序离开错误状态等等。
这里通过ThreadGroup提供的一个方法,解决了这个问题,让我们的程序可以变得更健壮。ThreadGroup提供一个uncaughtException回调方法,当线程组中的线程有未被捕获的异常发生时,JVM就会去调用这个方法。
public class ApplicationLoader extends ThreadGroup { private ApplicationLoader() { super("ApplicationLoader"); } public static void main(String args[]) { Runnable addStarter = new Runnable() { public void run() { //在这里调用我们自己的程序的入口函数 //MyApplication.main(args); } }; //把我们自己的程序当作这个线程组的一个线程来运行 new Thread(new ApplicationLoader(), addStarter).start(); } |
/*当有未被捕获的异常发生导致线程停止时,这个方法就会被虚拟机调用,我们只要在自己的ThreadGroup子类中override这个方法,在其中对异常进行相应的处理*/
public void uncaughtException(Thread threadf, Throwable e) { //Handle the Exception } } |
栏 目:Java编程
下一篇:Java运行时多态性的实现
本文标题:Java经验点滴:处理没有被捕获的异常
本文地址:https://www.xiuzhanwang.com/a1/Javabiancheng/8556.html
您可能感兴趣的文章
- 01-10Java咖啡馆(1)——叹咖啡
- 01-10Java Socket编程(三) 服务器Sockets
- 01-10Java进阶:Struts多模块的技巧
- 01-10Java Socket编程(一) Socket传输模式
- 01-10Java Socket编程(二) Java面向连接的类
- 01-10Java运行时多态性的实现
- 01-10Java Socket编程(四) 重复和并发服务器
- 01-10Java中的浮点数分析
- 01-10面向对象编程:Java中的抽象数据类型
- 01-10跟我学Java Swing之游戏设计(2)
阅读排行
本栏相关
- 01-10Java咖啡馆(1)——叹咖啡
- 01-10JVM的垃圾回收机制详解和调优
- 01-10Java Socket编程(三) 服务器Sockets
- 01-10Java进阶:Struts多模块的技巧
- 01-10J2SE 1.5版本的新特性一览
- 01-10Java Socket编程(一) Socket传输模式
- 01-10Java运行时多态性的实现
- 01-10Java Socket编程(二) Java面向连接的类
- 01-10Java Socket编程(四) 重复和并发服务
- 01-10Java经验点滴:处理没有被捕获的异常
随机阅读
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10C#中split用法实例总结
- 04-02jquery与jsp,用jquery
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10delphi制作wav文件的方法
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10SublimeText编译C开发环境设置
- 01-11ajax实现页面的局部加载
- 08-05织梦dedecms什么时候用栏目交叉功能?