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

来源:互联网 发布:php设置和获取session 编辑:程序博客网 时间:2024/06/10 03:00

在网上看到一段代码

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
原创粉丝点击