本帖最后由 李知伦 于 2012-8-4 02:29 编辑
1、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
答:会,之后
我觉得如果你把题目中的return理解返回值,答案就是"之前";如果理解成代码,语句,就是之后
不管怎样这里的finally肯定会被执行- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
-
- // TODO Auto-generated method stub
- System.out.println("返回值:"+new Test().tt());;
- }
- static int tt() {
- int x = 1;
- try {
- return Return();
- }
- finally {
- ++x;
- System.out.println("finally块执行,x="+x);
- //如果try与finally中都有return语句,返回值以finally的为准,返回值为2
- //return x;
-
- }
- }
- static int Return(){
- System.out.println("return执行");
- return 1;
- }
- }
复制代码 运行结果:
return执行
finally块执行,x=2
返回值:1
|