注册
 找回密码
 注册
江西广告网
查看: 302|回复: 0
打印 上一主题 下一主题

Java异常处理特殊情况分析

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-19 09:57:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  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");   }   }   }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表