在Java语法中,return表示当前执行的结束,finally则是在当前代码块一定会执行的代码块。如果return在finally在之前执行,也就是return放在try或者catch的语句块里,,finally里的代码也会执行吗?我们来试试看!
源码:
<span style="font-size:18px;"> public static String test(){
int a = 2;
int b = 0;
int c;
String s = "";
try {
s = "try";
System.out.println("try:"+s) ;
c = a/b;
return s;
} catch (Exception e) {
s = "catch";
System.out.println("catch:"+s);
return s;
} finally {
System.out.println("finally:"+s);
s = "finally";
System.out.println("finally:"+s);
}
}</span>
运行结果:
个人认为,这个先后顺序没有计较的价值。需要知道的是:
1、finally代码块中最后不要用return;
2、finally和return一起使用,finally是会被执行的。