A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

除非try里执行到了 System.exit(0);
回复 使用道具 举报
finally就表示一定会执行的
通常用于关闭资源或者执行一些必须执行的代码
回复 使用道具 举报
careit 发表于 2014-9-15 21:44
点开图片一块就明白了e
代码也附上

thank you very much
回复 使用道具 举报
本帖最后由 郑飞 于 2014-9-18 05:03 编辑
  1. /*
  2. 需求:用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

  3. 思路:1;定义带返回值为字符串的方法,在方法中使用try catch finally语句

  4.           2:在这3个语句段里写入控制台输出语句 便于判断进入语句段的顺序

  5.           3:让try中的return 的同时出现异常 并捕获打印到控制台 便于判断return执行的时间点

  6.           4;有了第3步 就可以方便判断return与finally执行的顺序了
  7. */
  8. class Test7
  9. {
  10.         public static void main(String[] args)
  11.         {
  12.                 System.out.println(test());
  13.         }

  14.         public static String test()
  15.         {
  16.                 System.out.println("程序运行!");
  17.                 try
  18.                 {
  19.                         System.out.println("开始执行try中的语句!");//开始运行try代码段

  20.                         try
  21.                         {
  22.                                 return 3/0+"";        
  23.                         }
  24.                         catch (Exception e)
  25.                         {
  26.                                 System.out.println("由于return中有意让3除0,此处捕获异常成功,说明return已执行!");
  27.                         }
  28.                 }
  29.                 catch (ArithmeticException e)
  30.                 {
  31.                         System.out.println(e.toString());
  32.                 }
  33.                 finally
  34.                 {
  35.                         System.out.println("执行finally中的语句!");//打印语句 说明执行了finally语句
  36.                 }
  37.                 return "程序结束!"; //程序完整需要 就写了个返回值
  38.         }
  39. }
复制代码
程序运行!开始执行try中的语句!
由于return中有意让3除0,此处捕获异常成功,说明return已经执行!
执行finally中的语句!
程序结束!


回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马