黑马程序员技术交流社区

标题: try-finally的问题! [打印本页]

作者: 张向阳    时间: 2012-12-22 10:27
标题: try-finally的问题!
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行,在return前还是后?
作者: 董将    时间: 2012-12-22 10:37
public class Text5 {
        public static void main(String[] args) {
        //定义一个整型数组
        int [] arr={1,2,3,4,5};
        //调用showElement方法并传递一个大可以导致越界的参数
        int res=show(arr,arr.length);
        //显示得到的返回值
        System.out.println(res);
}

public static int show(int[] arr, int length) {
        int num=1;
        try {
                System.out.println(arr[length]);
        
        }
        catch (Exception e) {//这里应该抛数组角标越界,这里简单处理
                return num;
               
        }
        finally{
                num=2;
                System.out.println("finally执行了!");
        }
        
        return 3;
}
}
通过这个可以证明return是在finally执行后才返回的,且finally无法改变返回值。
作者: Jam    时间: 2012-12-22 19:10
会执行,好像是道面试题




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