尚学堂【官网】-西安Java培训|c++培训|Android培训|安卓培训|java视频教程|软件工程师|-西安雁塔尚学堂计算机学校
 陕西科技大学-实习就业项训基地        陕西师范大学-实习就业项训基地
 西安财经学院-实习就业项训基地        西安工业大学-实习就业项训基地
  试听热线:
  029-62258374
Java资讯  尚学堂首页Java学院Java资讯

Java程序异常处理的特殊情况

www.xasxt.com 发布人:java  |  来自:本站  |  发布时间:2017-09-19 16:42:00  |  点击次数:1438

  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");  }  }  }  
当前文:Java程序异常处理的特殊情况
上一页:女程序员天生不如男的,谷歌工程师说错了么?
下一页:【西安java培训】Java常用第三方库大全
在线报名(*为必填项)