try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

在Java编程中,可能会遇到在try块中包含有返回语句的情况。那么紧随其后的finally块中的代码是否会被执行呢?在这种情况下,finally块中的代码会在返回语句执行前执行还是执行后呢?让我们来探讨一下这个问题。

首先,让我们回顾一下Java中try-catch-finally语句块的执行顺序。在try块中的代码执行完毕后,无论是否发生异常,finally块中的代码都会被执行。这是为了确保资源得到正确地释放,比如关闭文件或数据库连接等操作。但是在try块中包含有返回语句时,情况就会有所不同。

当try块中存在返回语句时,程序会立刻返回结果,并且不会执行try块中返回语句后的任何代码。这意味着在try块中的返回语句执行后,finally块中的代码仍然会被执行。所以答案是finally块中的代码会在返回语句执行后被执行。

让我们通过一个简单的示例来演示这一点:

    public static void main(String[] args) {
        int test = test(3,5);
        System.out.println(test);
    }

    public static int test(int x, int y){
        int result = x;
        try{
            result = x + y;
            return result;
        }finally{
            result = x - y;
        }
    }

运行结果如图:

运行结果为8而不是-2,说明了finally中的代码在return之后执行

总的来说,无论try块中是否存在返回语句,finally块中的代码都会在返回语句执行后得到执行。这是Java语言中保证资源释放和清理的一种机制。希望这篇文章能够帮助你更好地理解在Java中try块和finally块的执行顺序。如果你有任何疑问或者想要了解更多相关知识,欢迎留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值