黑马程序员技术交流社区
标题:
证明return是在finally执行后才返回的并且不能改变返回值
[打印本页]
作者:
冰深
时间:
2012-11-20 13:42
标题:
证明return是在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;
}
}
复制代码
创建了test类,有方法showElement来显示传入的数组的某个指定下标的元素。这里传入的角标越界,因此会抛出异常,在异常处理模块返回showElement的局部变量num,而在finally中打印字符以及尝试修改这个局部变量,最后运行发现显示了finally的字符串,并返回的结果还是该局部变量的初值。因此证明了return是在finally执行后才返回的,且在finally无法改变返回值。
作者:
许庭洲
时间:
2012-11-21 20:36
值得学习ing!
作者:
冰深
时间:
2012-11-21 22:31
许庭洲 发表于 2012-11-21 20:36
值得学习ing!
喔噢,你的技术真多啊!!!!我还差好多。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2