处理没有被捕获的异常
来源:互联网 发布:淘宝客服每日工作流程 编辑:程序博客网 时间:2024/04/27 19:18
在我们的程序中并不是所有的异常都被捕获,有些是因为我们不想捕获,因为我们认为那些异常没必要捕获
而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像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 异常,但是异常并没有 打印,说明 异常没有被捕获
- 利用反射调用方法抛出的异常如何被捕获?
- java入门教程-6.3Java未被捕获的异常
- 锚点请求被捕获的解决方法
- 没有异常处理产生的代码-1
- JSF的ViewExpiredException异常处理 视图没有存储的异常
- Android 关于没有处理异常导致应用程序崩溃的处理
- 异常的继承关系与捕获关系(只有直系的继承关系时,下面的类才能被捕获,和辈分无关!!)
- 异常捕获不抛出,Spring事务无法回滚 (默认spring只在发生未被捕获的runtimeexcetpion时才回滚。)
- Swift 为什么没有异常处理?
- WCFExpetionFaultException方法内部出现没有处理的异常
- AS没有提示异常处理,需要程序员主动处理异常的一个情况
- 518抽奖软件源码之:使得除零异常可被捕获(VC++)
- 什么异常才可以被捕捉?
- Observable与Observer
- 蓝色的西瓜,你敢吃吗?
- Asp.net的技巧汇总
- java 匿名类的一道题
- 济南-北京-济南
- 处理没有被捕获的异常
- 使用c#之感想
- 北京-泰山-北京
- 2004.07.26,Mon - 今儿气不顺
- 高平-北京-高平
- 大家好,我是第一次来发贴请教
- wap站点集合
- 请各位大虾多多指教!
- 使用Eclipse3.0+lomboz3.0+jboss3.2.3开发EJB