代码阅读题-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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步