【Java】从一段程序看关键字finally

在网上看到一段代码

public class Test {
    public static int tt() {
        int b = 23;
        try {
            System.out.println("yes");
            return b += 88;
        } catch (Exception e) {
            System.out.println("error: " + e);
        } finally {
            if (b > 25) {
                System.out.println("b>25: " + b);
            }
            System.out.println("finally");
        }
        return b;
    }

    public static void main(String[] args) {
        System.out.print("main method: " + tt());
    }
}

运行结果:

yes
b>25: 111
finally
main method: 111

到这里,有很多人会感到纳闷:return之后函数不就结束了吗?怎么还是执行finally域内的语句?为了说明这个问题,我们先谈谈finally关键字。

finally的作用

关键字finally是try的关键字,一般与try成对出现,意味着无论try块是怎么退出的,finally子句中的代码总是会被执行的。因此,finally被用来执行无论是否有异常总是要运行的事件。

一般情况下,return表示了调用方法的结束,但finally是个例外。如果用System.exit()退出程序的话,当然finally就不会执行了。

参考资料

[1] Does finally always execute in Java?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值