try、catch中finally和return执行顺序

本文探讨了Java中try、catch和finally块的执行顺序,以及finally中的return语句和变量修改如何影响程序返回值。通过实例解析,总结了finally模块的执行特点和变量操作的规则。
摘要由CSDN通过智能技术生成

1.执行try中的return

public static int show() {
        try {
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally模块被执行");
        }
    }

    public static void main(String args[]) {
        System.out.println(show());
    }

输出结果:

2.执行catch中的return

public static int show() {
        try {
            int a = 10 / 0;
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally模块被执行");
        }
    }

    public static void main(String args[]) {
        System.out.println(show());
    }

 输出结果:

 结论:程序从try代码块或者catch代码块中返回时,finally中的代码会先执行。

3.既有finally又有return

public static int show() {
        try {
            //int a = 10 / 0;
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally模块被执行");
            return 0;
        }
    }

    public static void main(String args[]) {
        System.out.println(show());
    }

输出结果:

 结论:当finally有返回值时,会直接返回。不会返回try或catch中的返回值。

4.当finally对变量做修改是否影响返回值

public static int show() {
        int a = 10;
        try {
            System.out.println(a + " 我是try");
            return a;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally模块被执行");
            a = 0;
            System.out.println(a);
        }
    }

    public static void main(String args[]) {
        System.out.println(show());
    }

输出结果:

 

结论:try或catch的return是一个变量,函数的是从两个之中返回时,后面finally中语句有对返回的变量进行赋值的操作时,不会影响返回的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值