try,finally中都有return时程序的执行顺序

try代码块中包含return语句,finally代码块中不包含return语句;package Exception;#

Copy
public class Test02 {
public static void main(String[] args) {
System.out.println(test());
}
public static int test(){
try{
int i=1;
return i;
}
finally{
int i=2;
System.out.println(i);
}
}
}

结果

Copy
2
1

try代码块和finally代码块中都有return语句#

Copy
public class Test01 {
public static void main(String[] args) {
System.out.println(test());
}
public static int test(){
try{
int i = 1;
return i;
}
finally{
int j = 2;
return j;
}
}
}

结果

Copy
2

结论#

1.如果try代码块里有return语句,而finally代码块里没有return语句,程序会先执行finally代码块里的代码然后再执行try代码块里的return语句;

2.如果try代码块和finally代码块里都有return语句,try代码块里的return语句会优先finally代码块里的return语句执行,但不会把返回的结果返回给主函数,而是会把finally代码块里return的结果返回给主函数。

posted @   编程迷悟  阅读(338)  评论(0编辑  收藏  举报
编辑推荐:
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
阅读排行:
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
点击右上角即可分享
微信分享提示
CONTENTS