2022-09-25 11:52阅读: 15评论: 0推荐: 0

代码阅读题-try、catch和finally中return

public static void main(String[] args) {
System.out.println(test());
}
public static int test(){
int a= 1;
try{
a=2/0;
return a;
}catch (Exception e){
a=3;
return a;
}finally {
a=4;
System.out.print("+nowcoder");
// 有return就返回4,没有就返回3
return a;
}
}

如果finally中没有return,按照catch中的值返回
finally中有return,按照finally中修改的值返回

一旦在finally块中使用了return、throw语句,将会导致try块、catch块中的return、throw语句失效

当程序运行到try块、catch块中的return、throw语句时,不会立即结束并返回,而是去执行finally块(如果有)中的语句,然后再回过头来执行return(但是不会返回finally中修改的值,而是返回catch中的旧值
但是如果finally中return或者throw了,会导致方法的立即终止(此时的返回值也是finally中修改的值

本文作者:YaosGHC

本文链接:https://www.cnblogs.com/yaocy/p/16727584.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

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