- 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;
- }
-
-
-
- }
复制代码 创建了test类,有方法showElement来显示传入的数组的某个指定下标的元素。这里传入的角标越界,因此会抛出异常,在异常处理模块返回showElement的局部变量num,而在finally中打印字符以及尝试修改这个局部变量,最后运行发现显示了finally的字符串,并返回的结果还是该局部变量的初值。因此证明了return是在finally执行后才返回的,且在finally无法改变返回值。 |