在Java语法中,return表示当前执行的结束,finally则是在当前代码块一定会执行的代码块。如果return在finally在之前执行,finally也会执行吗?答案是肯定的!
但是,finally和return的执行顺序则并不是真正意义上的先后顺序。
在上面的代码中,最后的输出finally,但是test方法返回的参数值确实try。
个人认为,这个先后顺序没有计较的价值。需要知道的是:
1、finally执行的时候并不能改变返回参数的值;
2、finally代码块中最后不要用return;
3、finally和return一起使用,finally是会被执行的。
测试JDK:java version "1.6.0_45"
但是,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"