zoukankan      html  css  js  c++  java
  • try catch finally return之间的关系

    一、try catch finally return之间的关系:

    正在写dsoFramer的时候,同事突然说面试的时候问的一个问题,catch和return那个先执行,我瞬间迷茫了,然后整理了整理,稍微找了点资料,才明白这之间的联系。嘿嘿,献丑了。

      1、当这四个关键字全部存在的时候,finally是永远执行的

      ex:1、在try中没有异常的情况下try、catch、finally的执行顺序 try -- finally(catch不执行)

         2、如果try中异常,执行顺序是try -- catch -- finally

         3、try中没有异常并且try中有return这时候正常执行顺序是try -- finally -- return(catch不执行)

         4、try中异常并且try中有return这时候正常执行顺序是try--catch--finally-- return

      2、return是不会执行的

        try-catch-finally里都没有return ,finally 之后有个return ,如果try中有异常,finally执行完后,不再执行return,try中有异常以后,根据异常机制先执行catch后执  行finally,此时错误异常已经抛出,程序因异常而终止,所以return任然不执行。

      3、finally中的return会覆盖掉其它位置的return

        在存在try-catch-finally的方法中,return可能出现的位置有4个,在try中,在catch中,在finally中,在finally后(try-catch-finally外的语句块)。在这4个位置都出现  return的情况下(应该是不可能的,如果前面3个位置都存在return,那么最后一个位置的return就成了unreachable code,编译不会通过),最终会执行的return应该是          finally中的return。

  • 相关阅读:
    HDU 2433 Travel (最短路,BFS,变形)
    HDU 2544 最短路 (最短路,spfa)
    HDU 2063 过山车 (最大匹配,匈牙利算法)
    HDU 1150 Machine Schedule (最小覆盖,匈牙利算法)
    290 Word Pattern 单词模式
    289 Game of Life 生命的游戏
    287 Find the Duplicate Number 寻找重复数
    283 Move Zeroes 移动零
    282 Expression Add Operators 给表达式添加运算符
    279 Perfect Squares 完美平方数
  • 原文地址:https://www.cnblogs.com/JeffController/p/4958819.html
Copyright © 2011-2022 走看看