黑马程序员技术交流社区

标题: 在try中写了return,后面又写了finally,是先执行return还是先执行fianlly? [打印本页]

作者: 经济    时间: 2015-6-2 10:46
标题: 在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
public class Test8{

        // 定义静态变量
        private static int a = 10;

        public static void main(String[] args) {

                // 测试在try中写了return,后面又写了finally,是先执行return还是先执行fianlly
                int b = testTryReturn();
                // 输出测试结果
                System.out.println("a = " + a);
                System.out.println("b = " + b);
        }

        private static int testTryReturn() {
                // TODO Auto-generated method stub

                try {
                        a = 1;
                        return a;
                } finally {
                        a = 5;
                }
        }
}

结果分析:测试结果a=5,b=1,也就是说程序走到return时,阻塞,然后执行finally里面的代码,等到finally里面的代码执行完以后,return语句阻塞消失,然后继续执行,准确的说finally在return执行过程中执行,也可以认为先执行finally,后执行return

作者: w490541    时间: 2015-6-2 21:47
顶顶顶顶顶顶顶顶顶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2