关于try、catch、finally中return的执行顺序

来源:互联网 发布:淘宝宝贝评论保留多久 编辑:程序博客网 时间:2024/05/17 04:54

try、catch、finally中的return顺序和有效性

声明:参考资料来源 http://blog.csdn.net/wangqingbo0829/article/details/52458283,本人出于学习,收集干货,不作商业用途!

今天面试的时候,被问到这个return的执行结果和顺序,发现自己有些遗忘了,于是回来赶紧查一下相关的资料,看到这篇文章写得很好 http://blog.csdn.net/wangqingbo0829/article/details/52458283  自己总结,测试了一些,内容大致如下:

总结来说:

1,如果这个结构体外有return,会和里面这几个的return互斥,编译器会报错
这里写图片描述

2,有异常的话,返回的是finallly中的return 的值,其他的都将失效,return之前的代码都有效。
这里写图片描述

3,没异常的话:
1)finally中有return,执行finally中的return:
这里写图片描述

2)finally中没有return,try有return,返回的是try中return的值,但是会执行finally中的代码再return。
这里写图片描述

4,都有return的情况下,catch中的return基本不会起作用
(结合上面的图片可知)
catch和finally中,可同时存在return,编译能通过。但程序以finally中的return为准,不会理睬catch中的return ,catch中return之前的代码仍然生效。

结束和声明

以上纯属个人观点和体会
希望这篇文章能对你有所帮助!
欢迎大家来一起讨论分享干货,或者批评指正!
更加热切盼望各路大神前辈给些指导和建议!

以后会不定期更新心得和总结,包括学习过程中各种异常和解决办法等等。再见!
转载请注明出处!或者联系我!(chenruijia_java@163.com)

原创粉丝点击