黑马程序员技术交流社区

标题: 经典面试题:用代码证明,在try中的finally一定会被执行 [打印本页]

作者: 小地瓜    时间: 2015-11-22 00:29
标题: 经典面试题:用代码证明,在try中的finally一定会被执行
请看题:
【题目】用代码证明,在 try 中写了 return,后面又写了 finally,是先执行 return 还是先执行fianlly?
想到的亲们,可以发在后面,我们一起来讨论,建议先不要看我的噢,我写出来的是我个人的想法,大家有好的思维我们可以一起来讨论!
  1. package com.itheima.day1120;

  2. public class Demo_text03 {

  3.         public static void main(String[] args) {
  4.                 /**
  5.                  *  用代码证明,在 try 中写了 return,后面又写了 finally,是先执行 return 还是先执行fianlly?
  6.                  * @author  
  7.                  * 答:return语句已经执行了再去执行finally语句,不过并没有直接返回,而是等finally 语句执行完了再返回结果。  * 证明代码如下:
  8.                  * */
  9.                 System.out.println(method());
  10.         }
  11.         public static int method(){
  12.                 int[] arr = {1,2,3};
  13.                 int c = 0;
  14.                 try {
  15.                         int b = arr[10];
  16.                 } catch (Exception e) {
  17.                         // TODO: handle exception
  18.                         System.out.println("try 运行了");
  19.                         return c = 3;
  20.                 }finally{
  21.                        
  22.                         System.out.println("我是finally");
  23.                         if (c == 3) {
  24.                                 System.out.println("return 运行了");
  25.                         }
  26.                 }
  27.                 return 0;
  28.                
  29.         }

  30. }
复制代码

可以发上来,我们一起来讨论




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