Java return和finally执行顺序

在Java语法中,return表示当前执行的结束,finally则是在当前代码块一定会执行的代码块。如果return在finally在之前执行,finally也会执行吗?答案是肯定的!

但是,finally和return的执行顺序则并不是真正意义上的先后顺序。
 public String test(){
     String s = "";
     try {
         s = "try";
         System.out.println(s);
         return s;
     } catch (Exception e) {
         s = "catch";
         return s;
     } finally {
         System.out.println(s);
         s = "finally";
         System.out.println(s);
     }
 }


在上面的代码中,最后的输出finally,但是test方法返回的参数值确实try。

个人认为,这个先后顺序没有计较的价值。需要知道的是:

1、finally执行的时候并不能改变返回参数的值;

2、finally代码块中最后不要用return;

3、finally和return一起使用,finally是会被执行的。



测试JDK:java version "1.6.0_45"

猜你喜欢

转载自326866020.iteye.com/blog/2292303
今日推荐