try、catch、finally、return的执行顺序

1. 不管有没有异常,finally里面的语句都会执行

2. 当try和catch中有返回语句时,finally里面的语句还是会执行

3. 如果finally里面没有return语句,try和catch里面有return语句,则最终的返回值在执行finally之前就已经确定了

4. 如果finally里面有return语句,则最终的返回值在执行finally之后确定

    //顺序执行,返回15
    public static int val1() {
        int num = 5;
        try {
            num = num / 0;
        } catch (Exception e) {
            num = 10;
        } finally {
            num = 15;
        }
        return num;
    }
    //执行catch中的return语句但是不返回,但是保留了返回值10,
    //再执行finally语句,最后返回catch中的值,返回值10
    public static int val2() {
        int num = 5;
        try {
            num = num / 0;
        } catch (Exception e) {
            num = 10;
            return num;
        } finally {
            num = 15;
        }
        return num;
    }
  //执行catch中的return语句但是不返回,但是保留了返回值10,
    //再执行finally语句,最后返回catch中的值,返回值10
    public static int val2() {
        int num = 5;
        try {
            num = num / 0;
        } catch (Exception e) {
            num = 10;
            return num;
        } finally {
            num = 15;
        }
        return num;
    }
    //执行try中的return语句但是不返回,但是保留了返回值1,
    //再执行finally语句,最后返回catch中的值,返回值1
    public static int val4() {
        int num = 5;
        try {
            num = num / 5;
            return num;
        } catch (Exception e) {
            num = 10;
        } finally {
            num = 15;
        }
        return num;
    }
    //执行try中的return语句但是不返回,但是保留了返回值1,
    //再执行finally语句,最后返回catch中的值,返回值1
    public static int val4() {
        int num = 5;
        try {
            num = num / 5;
            return num;
        } catch (Exception e) {
            num = 10;
        } finally {
            num = 15;
        }
        return num;
    }
posted @   shaun23  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示