• 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替换
    
  • 相关阅读:
    本地数据存储
    网络统计公式
    网络统计图形
    上海证券综合指数统计分析及挖掘(二)
    上海证券综合指数统计分析及挖掘(一)
    概论
    寿险精算学目录
    JavaScript脚本代码练习
    JavaScript脚本语言基础(一)
    层叠样式表(CSS)
  • 原文地址:https://www.cnblogs.com/forelim/p/15408607.html
Copyright © 2020-2023  润新知