JAVA try和fafinally执行顺序

try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
肯定会执行。finally{}块的代码只有在try{}块中包含遇到System.exit(0);之类的导致Java虚拟机直接退出的语句才会不执行。

当程序执行try{}遇到return时,程序会先执行return语句,但并不会立即返回——也就是把return语句要做的一切事情都准备好,也就是在将要返回、但并未返回的时候,程序把执行流程转去执行finally块,当finally块执行完成后就直接返回刚才return语句已经准备好的结果。

但如果finally块里也包含return语句,则会导致方法返回。

本文作者:stilldream

本文链接:https://www.cnblogs.com/stilldream/p/15946202.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆,转载请附上原文出处链接及本声明。许可协议进行许可。

posted @   还可入梦  阅读(64)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起