zoukankan      html  css  js  c++  java
  • Java 中 try、catch、finally 语句块的执行顺序

    • 假设代码顺序书写如下:try → catch → finally → 其他代码
    • 则:
      • 1、正常执行顺序:try → catch → finally → 其他代码
      • 2、try,catch和finally和其他代码的执行条件:
        • 先执行try。
        • 只要try中有异常,catch就会执行;
        • finally总会执行;
        • 其他代码:
          • 如果finally中没有return:其他代码会执行;
          • 如果finally中有return:其他代码不会执行;
      • 3、方法的返回结果确定:
        • finally 有return:(finally中的return)
          • 返回结果为 finally 中的值,try(+catch,+ 其他代码)的 return 值会被覆盖掉。
            注:有return,其他代码不会执行。所以finally就是最终执行的代码。故返回结果为 finally 中的值。
        • finally 没有return:(正常执行顺序返回结果)
          • 返回结果就是正常代码执行顺序的返回结果。try(+catch,+ 其他代码)的 return 会被寄存起来。一般 finally 不会修改返回值,除非 finally 修改了该引用指向的实际内存内容。
            注:没有return,其他代码会执行,finally不是最终执行的代码。返回结果为正常执行顺序的返回结果。
    • 参考:
  • 相关阅读:
    第二阶段团队站立会议06
    第二阶段团队站立会议05
    Spring
    JVM
    线程池
    java内存模型
    线程
    接口与抽象类
    动态绑定,多态,static
    同步异步,并发并行概念的理解
  • 原文地址:https://www.cnblogs.com/buwuliao/p/10871435.html
Copyright © 2011-2022 走看看