摘要:基礎系列的與方法類初始化順序線程池如何彈性伸縮的幾個要點的緩存什么場景下使用阻塞隊列的使用及模式中的序本文主要簡述中有的情況。參考關于中的執行順序
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后的執行順序 function test() { try { console.log(1); } fin...
摘要:是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上后的執行順序嗯按順序執行了。現在筆者在語句塊中故意報錯看來,和的都需要先經過。 try-catch是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上finally后的執行順序 function test() { try { console.log(1); } fin...
摘要:允許存在多個,用于針對不同的異常做不同的處理。表示程序可能需要捕獲并且處理的異常。因此,我們應該盡可能的避免通過異常來處理正常的邏輯檢查,這樣可以確保不會因為發生異常而導致性能問題。異常表中的每一條記錄,都代表了一個異常處理器。 showImg(https://segmentfault.com/img/remote/1460000017918154?w=640&h=100); show...
摘要:當觸發異常的字節碼的索引值在某個異常表條目的監控范圍內,虛擬機會判斷所拋出的異常和該條目想要捕獲的異常是否匹配。 作者:李瑞杰目前就職于阿里巴巴,狂熱JVM愛好者讓我們準備一個函數:showImg(https://user-gold-cdn.xitu.io/2019/5/19/16acbce35adfefb7);然后,反編譯他的字節碼:showImg(https://user-gold-cd...
摘要:當觸發異常的字節碼的索引值在某個異常表條目的監控范圍內,虛擬機會判斷所拋出的異常和該條目想要捕獲的異常是否匹配。 作者:李瑞杰目前就職于阿里巴巴,狂熱JVM愛好者讓我們準備一個函數:showImg(https://user-gold-cdn.xitu.io/2019/5/19/16acbce35adfefb7);然后,反編譯他的字節碼:showImg(https://user-gold-cd...
閱讀 955·2019-08-30 14:24
閱讀 987·2019-08-30 14:13
閱讀 1799·2019-08-29 17:21
閱讀 2661·2019-08-29 13:44
閱讀 1654·2019-08-29 11:04
閱讀 438·2019-08-26 10:44
閱讀 2564·2019-08-23 14:04
閱讀 908·2019-08-23 12:08