A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itheima;

  2. public class test{

  3.         /*写一个类证明return是在finally执行后才返回的,且在finally无法改变返回值。
  4.          *
  5.          *
  6.          */
  7.         public static void main(String[] args) {
  8.                 //定义一个整型数组
  9.                 int [] arr={11,22,33,44,55};
  10.                 //调用showElement方法并传递一个大可以导致越界的参数
  11.                 int res=showElement(arr,arr.length);
  12.                 //显示得到的返回值
  13.                 System.out.println(res);
  14.         }

  15.         public static int showElement(int[] arr, int length) {
  16.                 int num=1;
  17.                 try {
  18.                         System.out.println(arr[length]);
  19.                
  20.                 }
  21.                 catch (Exception e) {//这里应该抛数组角标越界,这里简单处理
  22.                         return num;
  23.                         
  24.                 }
  25.                 finally{
  26.                         num=2;
  27.                         System.out.println("finally执行了!");
  28.                 }
  29.                
  30.                 return 3;
  31.         }
  32.         
  33.         
  34.         

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

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
许庭洲 发表于 2012-11-21 20:36
值得学习ing!

喔噢,你的技术真多啊!!!!我还差好多。。。。
回复 使用道具 举报
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马