国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

try-catch-finally中的return

fizz / 1117人閱讀

摘要:基礎系列的與方法類初始化順序線程池如何彈性伸縮的幾個要點的緩存什么場景下使用阻塞隊列的使用及模式中的序本文主要簡述中有的情況。參考關于中的執行順序

Java基礎系列

Java的hashcode與equals方法

Java類初始化順序

ThreadPoolExecutor線程池如何彈性伸縮

HashMap的幾個要點

Integer的緩存

什么場景下使用阻塞隊列

volatile的使用及DCL模式

try-catch-finally中的return

本文主要簡述try-catch-finally中有return的情況。筆試面試經常考到。

題目
/**
 * http://qing0991.blog.51cto.com/1640542/1387200
 * Created by codecraft on 2016-03-08.
 */
public class ReturnDemo {

    /**
     * try有return,finally也有return,以finally的為準
     * @return
     */
    public static int noException(){
        int i=10;
        try{
            System.out.println("i in try block is:"+i); //10
            i--; //9
            return --i; //8
        }
        catch(Exception e){
            --i;
            System.out.println("i in catch - form try block is:"+i);
            return --i;
        }
        finally{
            System.out.println("i in finally - from try or catch block is:"+i); //8
            return ++i; //9 返回這個
        }
    }

    public static int tryCatchReturn(){
        int i=10;
        try{
            System.out.println("i in try block is:"+i); //10
            return --i; //9
        }
        catch(Exception e){
            --i;
            System.out.println("i in catch - form try block is:"+i);
            return --i;
        }
        finally{
            System.out.println("i in finally - from try or catch block is:"+i); //9
            --i; //8
            System.out.println("i in finally block is:"+i); //8
        }
    }

    /**
     * finally的return的優先級最高
     * 但try/catch的return也會執行
     * @return
     */
    public static int tryCatchFinallyReturn(){
        int i=10;
        try{
            System.out.println("i in try block is:"+i); //10
            i = i/0;
            return --i;
        }
        catch(Exception e){
            System.out.println("i in catch - form try block is:"+i); //10
            --i; //9
            System.out.println("i in catch block is:"+i); //9
            return --i; //8
        }
        finally{
            System.out.println("i in finally - from try or catch block is--"+i); //8
            --i; //7
            System.out.println("i in finally block is--"+i); //7
            return --i; //6
        }
    }

    public static int tryExCatchReturn(){
        int i=10;
        try{
            System.out.println("i in try block is:"+i); //10
            i=i/0;
            return --i;
        }catch(Exception e){
            System.out.println("i in catch - form try block is:"+i); //10
            return --i; //9 返回這個
        }finally{

            System.out.println("i in finally - from try or catch block is:"+i); //9
            --i; //8
            System.out.println("i in finally block is:"+i); //8
        }
    }

    public static int tryExCatchExReturn() {
        int i = 10;
        try {
            System.out.println("i in try block is:" + i); //10
            i = i / 0;
            return --i;
        } catch (Exception e) {
            System.out.println("i in catch - form try block is:" + i); //10
            int j = i / 0; 
            return --i;
        } finally {

            System.out.println("i in finally - from try or catch block is:" + i); //10
            --i; //9
            --i; //8
            System.out.println("i in finally block is:" + i); //8
            return --i; //7 返回這個
        }
    }


    public static void main(String[] args){
        System.out.println("###" + noException()); //9
        System.out.println("###" + tryCatchReturn()); //7 
        System.out.println("###" + tryCatchFinallyReturn()); //6
        System.out.println("###" + tryExCatchReturn()); //9 
        System.out.println("###" + tryExCatchExReturn()); //7
    }
}
小結

如果finally中有return,則最后的返回以它為準,同時try或catch的return如果可以運行到,也會執行其表達式。

參考

關于Java中try-catch-finally-return的執行順序

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65604.html

相關文章

  • try-catch-finally,被你忽略掉的執行順序

    摘要:是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上后的執行順序嗯按順序執行了。現在筆者在語句塊中故意報錯看來,和的都需要先經過。 try-catch是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上finally后的執行順序 function test() { try { console.log(1); } fin...

    bbbbbb 評論0 收藏0
  • try-catch-finally,被你忽略掉的執行順序

    摘要:是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上后的執行順序嗯按順序執行了。現在筆者在語句塊中故意報錯看來,和的都需要先經過。 try-catch是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上finally后的執行順序 function test() { try { console.log(1); } fin...

    浠ラ箍 評論0 收藏0
  • “崩潰了?不可能,我全 Catch 住了” | Java 異常處理

    摘要:允許存在多個,用于針對不同的異常做不同的處理。表示程序可能需要捕獲并且處理的異常。因此,我們應該盡可能的避免通過異常來處理正常的邏輯檢查,這樣可以確保不會因為發生異常而導致性能問題。異常表中的每一條記錄,都代表了一個異常處理器。 showImg(https://segmentfault.com/img/remote/1460000017918154?w=640&h=100); show...

    stdying 評論0 收藏0
  • 阿里小哥帶你玩轉JVM:揭秘try-catch-finally在JVM底層都干了些啥?

    摘要:當觸發異常的字節碼的索引值在某個異常表條目的監控范圍內,虛擬機會判斷所拋出的異常和該條目想要捕獲的異常是否匹配。 作者:李瑞杰目前就職于阿里巴巴,狂熱JVM愛好者讓我們準備一個函數:showImg(https://user-gold-cdn.xitu.io/2019/5/19/16acbce35adfefb7);然后,反編譯他的字節碼:showImg(https://user-gold-cd...

    番茄西紅柿 評論0 收藏0
  • 阿里小哥帶你玩轉JVM:揭秘try-catch-finally在JVM底層都干了些啥?

    摘要:當觸發異常的字節碼的索引值在某個異常表條目的監控范圍內,虛擬機會判斷所拋出的異常和該條目想要捕獲的異常是否匹配。 作者:李瑞杰目前就職于阿里巴巴,狂熱JVM愛好者讓我們準備一個函數:showImg(https://user-gold-cdn.xitu.io/2019/5/19/16acbce35adfefb7);然后,反編譯他的字節碼:showImg(https://user-gold-cd...

    番茄西紅柿 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<