但是,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"