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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范中俊 中级黑马   /  2014-11-28 21:41  /  1130 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
这个的证明代码怎么写呀?

9 个回复

正序浏览
夜海 中级黑马 2014-11-30 12:56:43
10#
会在return 中间执行
回复 使用道具 举报
finally会在return之间执行,当程序走到return时,会首先建立返回路径,再执行finally,finally执行后会重回到return,然后返回。
回复 使用道具 举报
娱尘 中级黑马 2014-11-29 22:24:04
8#
7楼的答案是正确的,我们今天刚好讲到这里,code 在return中间执行
回复 使用道具 举报
这是一个经典的java基础面试题

code 在return中间执行   不会弄那个代码 ~直接打了

public static void main(String args[]){
system.out.println(new Test().test());
}

public static int test(){
int  i = 1;
try {
return i;
} finally{
++i;
}
}
} 结果为1    同理 就知道这个题的答案
回复 使用道具 举报
finally 里的代码会被执行的,如果你想亲身体会的话 可以
   try{
                return 1
                }finally{
                return 2
                }
用下列代码尝试下,亲身体验印象是最深刻的!
回复 使用道具 举报
finally 里的代码会被执行的,
回复 使用道具 举报
  1. public class test {

  2.     public static void main(String[] args){
  3.        System.out.println(print());
  4.           
  5.           
  6.     }
  7.         public static String print(){
  8.                 try{
  9.                 System.out.println("try");
  10.                 return "返回语句";
  11.                 }finally{
  12.                 System.out.println("finally");
  13.                 }
  14.         }
  15. }
复制代码

运行结果:
try
finally
返回语句
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
会执行,是在return之前执行的
代码就在try{}里面return一个数,  在finally {}里面写上打印一句话.
然后调用方法并打印,就可以看到先打印的finally里面的话  然后再打印return的数了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马