try...catch...finally中try语句出现return的问题

之前遇到过一个问题:在try语句中如果有return语句,那么后面的finally是否还会执行?

写了段程序验证了下:

public class Test {
public static void main(String[] args) {
int i = 0;
try {
i = 9;
System.out.println("1:" + i);
return;
} catch (Exception e) {
e.printStackTrace();
} finally {
i = 8;
System.out.println("2:" + i);
}
}
}

发现结果为:

      1:9

      2:8

说明finally中得语句确实执行了,上网查了下相关问题,结论为:不管try中是否发生异常,或者有return类似语句,finally中语句都会执行。

posted @ 2011-11-05 11:29  董宏飞  阅读(195)  评论(0编辑  收藏  举报