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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毕业生 中级黑马   /  2014-8-1 11:29  /  926 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

2 个回复

倒序浏览
  1. public class Test8 {  
  2.         //先打印出来的是finally中的num为1,然后打印出了0
  3.         //证明num在return前并未被改变,所以return率先执行,然后才是finally

  4.        
  5.         public int test()
  6.         {
  7.                 int num=0;
  8.                 try {
  9.                        
  10.                         return num;
  11.                        
  12.                 } catch (Exception e) {
  13.                        
  14.                 }finally
  15.                 {
  16.                         num=num+1;
  17.                         System.out.println(num+"finally执行了");
  18.                        
  19.                        
  20.                 }
  21.                 return 1;
  22.                
  23.                
  24.         }
  25.        
  26.         public static void main(String[] args) {
  27.                 Test8 test=new Test8();
  28.                 System.out.println(test.test());
  29.                
  30.         }

  31. }
复制代码


我也抽到这题,这是我的答案,不过不知道对不对……
回复 使用道具 举报
return代表结束函数,而finally是一定要执行的,肯定是先执行return,在执行finally
                try
                {
                        System.out.println("hahh+return");
                        return;
                       
                }
                catch (Exception e)
                {
                }
                finally
                {
                        System.out.println("finally");               
                }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马