网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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,移动开发
本月文章推荐
.每周新书推荐:IBM & Java.
.使用Jbulider开发J2ME移动游戏程.
.精通Hibernate之映射继承关系四(.
.共享内存在Java中的实现和应用.
.面向方面编程慨述和JBoss.
.J2ME开发经验:J2ME应用程序内存.
.JAVA教程 第八讲 Java.
.Ruby入门之代码块、迭代子和过程.
.Java新消息:JRuby将集Java和RoR.
.motorola铃声算法,是Java的!.
.百分之百纯 Java(TM) java名词 解.
.Jetspeed开发文档2.
.实用工具类库java.util(1).
.系统托盘气泡提示和右键菜单的实.
.里程碑式的革新—全新J2SE1.5新特.
.理解JDIC中的文件类型关联.
.Redhat9下的java中文问题解决.
.用J2SE1.5建立多任务的Java应用程.
.Java网络编程的学习笔记(一).
.使用消息驱动Beans(3).

Java异常处理的特殊情况

发表日期:2008-1-5


  1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;

  2、在try,catch中假如有return语句,则在执行return之前先执行finally块

  请大家仔细看下面的例子:
以下是引用片段:
public class TryTest { 
    public static void main(String[] args) { 
        try { 
            System.out.println(TryTest.test());// 返回结果为true其没有任何异常 
        } catch (Exception e) { 
            System.out.println("Exception from main"); 
            e.printStackTrace(); 
        } 
        doThings(0); 
    } 
 
    public static boolean test() throws Exception { 
        try { 
            throw new Exception("Something error");// 第1步.抛出异常 
        } catch (Exception e) {// 第2步.捕捉的异常匹配(声明类或其父类),进入控制块 
            System.out.println("Exception from e");// 第3步.打印 
            return false;// 第5步. return前控制转移到finally块,执行完后再返回(这一步被吃掉了,不执行) 
        } finally { 
            return true; // 第4步. 控制转移,直接返回,吃掉了异常 
        } 
    } 
     
    public static void doThings(int i) 
    { 
     try 
     { 
      if(i==0) 
      { 
       //在执行return之前会先执行finally 
       return; 
      } 
      int t=100/i; 
      System.out.println(t); 
     }catch(Exception ex) 
     { 
      ex.printStackTrace(); 
     } 
     finally 
     { 
      System.out.println("finally"); 
     } 
    } 


  

上一篇:Guice与Spring框架的区别 人气:756
下一篇:对Java语言入门初学者的一些建议 人气:631
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐