Board logo

标题: Java程序异常处理的特殊情况 [打印本页]

作者: qingqing3721    时间: 2011-8-2 22:45     标题: Java程序异常处理的特殊情况

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");  }  } }




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0