网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java集合构架研究之一.
.JAVA学习,是一条漫长的道路(转贴.
.使用档案文件提高applet的加载速.
.用Java实现回调例程.
.轻量级IoC容器来扩展ANT享受SPRI.
.Java做一个最简单的通话程序.
.EJB核心技术及其应用(1).
.技术摘要:如何编写安全的Java代.
.tan 方法.
.Java中的Vector.
.JDB 的简单使用.
.使用state pattern替代if else.
.Java编程讨论:关于什么叫面向接.
.用 Jython 构建 JUnit 测试包.
.Jetspeed项目中Psml文件的数据库.
.如何写注释.
.抢先体验“野马”J2SE6.0.
.实例讲解:开发SWING的XML框架(1).
.J2EE的安全认证机制.
.给你的Java应用程序加上日志功能.

Java经验点滴:处理没有被捕获的异常

发表日期:2008-1-5


  在我们的程序中并不是所有的异常都被捕捉,有些是因为我们不想捕捉,因为我们认为那些异常没必要捕捉

  而有些是我们无法捕捉的,因为我们不能确定它们会在什么地方出现,例如像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

  }

}

 







上一篇:经验分享:开发SWT应用两点心得 人气:522
下一篇:Java进阶:Struts多模块的技巧 人气:492
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐