finally语句块

finally语句块是依赖于try语句块存在的,通常情况下,一旦try语句被得到执行,finally语句块是一定会被执行的。(除了在try语句块中强制退出程序或者发生断电等非常规情况)。

特别地,当try语句块中有return语句时,程序将会怎样处理:

当try语句块执行到 return somevalue;时,系统会将当时的somevalue保存在栈中,但暂时先不return,而是去执行finally语句块,如果finally语句块中有return语句,则会执行finally块中的return。

否则,将返回try块中的return,返回值为当时保存的somevalue. 即便是finally语句块中对somevalue再作处理,对于try块中的return somevalue也是不产生影响的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 笔者之前的项目中有网络连接释放的地方,用finally语句去做比较合适,后来发现对finally语句块执行的时机有...
    MagicCoder阅读 7,158评论 0 7
  • 火线团队推出【火线解码】系列文章,每一篇解释一种不规范的代码写法,用较短的篇幅让大家快速的了解代码规范问题。 00...
    Qtest阅读 3,349评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • finally语句块与return 运行下面的代码,想想在程序正常运行时输出什么,出现异常时输出什么? 运行上面的...
    我是许同学阅读 3,671评论 2 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,312评论 19 139