| 创建了test类,有方法showElement来显示传入的数组的某个指定下标的元素。这里传入的角标越界,因此会抛出异常,在异常处理模块返回showElement的局部变量num,而在finally中打印字符以及尝试修改这个局部变量,最后运行发现显示了finally的字符串,并返回的结果还是该局部变量的初值。因此证明了return是在finally执行后才返回的,且在finally无法改变返回值。复制代码package com.itheima;
public class test{
        /*写一个类证明return是在finally执行后才返回的,且在finally无法改变返回值。
         * 
         * 
         */
        public static void main(String[] args) {
                //定义一个整型数组
                int [] arr={11,22,33,44,55};
                //调用showElement方法并传递一个大可以导致越界的参数
                int res=showElement(arr,arr.length);
                //显示得到的返回值
                System.out.println(res);
        }
        public static int showElement(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;
        }
        
        
        
}
 |