zoukankan      html  css  js  c++  java
  • 14. 异常处理中 try{}中有一个return,问finally{}会不会执行,最终结果是什么?

    14. 异常处理中 try{}中有一个return,问finally{}会不会执行,最终结果是什么?

    // 这么问太过枯燥了,看代码题目吧 求问最终代码输出结果
    public class Test {
        public static void main(String[] args) {
            System.out.println(test());
        }
        private static int test() {
            int temp = 1;
            try {
                System.out.println(temp);
                return ++temp;
            } catch (Exception e) {
                System.out.println(temp);
                return ++temp;
            } finally {
                ++temp;
                System.out.println(temp);
            }
        }
    }
    // 结果是1,3,2 哦
    
    # 题解:
    # 第一个输出结果1 没有任何疑问
    # 当代码执行到try块中的return时,最终返回的返回结果就已经定了 就是此时的temp值:2
    # 但是由于finally代码块必须执行,所以++temp;执行 此时temp:3 
    
    # 面试回答:
    # try{}中有一个return,finally是会执行的,在【return中】执行
    # 当代码执行到try块中的return时,返回的值会被存入一个临时空间,然后继续执行finally代码块,如果此时finally中有新的return值 那么临时返回值会被finally中的return替换
    
  • 相关阅读:
    国际标准化组织
    SIM卡
    苹果供应商
    iOS 调试技巧
    django进阶
    web框架django初探
    jquery
    JavaScript进阶之DOM
    html和css
    前端相关html和css
  • 原文地址:https://www.cnblogs.com/forelim/p/15408607.html
Copyright © 2011-2022 走看看