摘要:是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上后的執行順序嗯按順序執行了。現在筆者在語句塊中故意報錯看來,和的都需要先經過。
try-catch是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上finally后的執行順序
function test() { try { console.log(1); } finally { console.log(2); } } console.log(test()); // 1 2
嗯!按順序執行了。
我們在try中加入return語句
function test() { try { console.log(1); return "from_try"; } catch (e) { // TODO } finally { console.log(2); } } console.log(test()); // 1 2 from_try
等等,難道不應該是 1 > from_try > 2的順序嗎?
抱歉啊,是這樣的,在try和catch的代碼塊中,如果碰到return語句,那么在return之前,會先執行finally中的內容,所以2會比from_try優先輸出。
我們在finally中也加入return語句
function test() { try { console.log(1); return "from_try"; } catch (e) { // TODO } finally { console.log(2); return "from_finally"; } } console.log(test()); // 1 2 from_finally
買噶的,我的from_try怎么不見了?
抱歉,按照上一條的規則,finally是會優先執行的,所以如果finally里有return語句,那么就真的return了。
現在筆者在try語句塊中故意報錯
function test() { try { console.log(1); throw new Error("throw"); } catch (e) { console.log(e.message); return "from_catch"; } finally { console.log(2); } } console.log(test()); // 1 throw 2 from_catch
看來,try和catch的return都需要先經過finally。
結語只是一個很小的細節。但也希望各位看官好好利用這種特性。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28766.html
摘要:是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上后的執行順序嗯按順序執行了。現在筆者在語句塊中故意報錯看來,和的都需要先經過。 try-catch是捕捉異常的神器,不管是調試還是防止軟件崩潰,都離不開它。今天筆者介紹一下加上finally后的執行順序 function test() { try { console.log(1); } fin...
摘要:基礎系列的與方法類初始化順序線程池如何彈性伸縮的幾個要點的緩存什么場景下使用阻塞隊列的使用及模式中的序本文主要簡述中有的情況。參考關于中的執行順序 Java基礎系列 Java的hashcode與equals方法 Java類初始化順序 ThreadPoolExecutor線程池如何彈性伸縮 HashMap的幾個要點 Integer的緩存 什么場景下使用阻塞隊列 volatile的使用及...
摘要:被你忽略的尾調用尾調用是什么在有一個新特性尾調用用最簡單的一句話描述就是某個函數的最后一步再調用另一個函數,聽起來挺簡單的,但是它的功能特別強大,直接給你擼個例子吧。如果函數內部還調用函數,那就還有一個的調用記錄棧,以此類推。 title: 被你忽略的‘尾調用’date: 2017-05-02 16:52:22 tags: [ES6,javascript] 尾調用是什么? 在ES6有...
摘要:關于異常處理的文章已有相當的篇幅,本文簡單總結了的異常處理機制,并結合代碼分析了一些異常處理的最佳實踐,對異常的性能開銷進行了簡單分析。是程序正常運行中,可以預料的意外情況,應該被捕獲并進行相應處理。 關于異常處理的文章已有相當的篇幅,本文簡單總結了Java的異常處理機制,并結合代碼分析了一些異常處理的最佳實踐,對異常的性能開銷進行了簡單分析。博客另一篇文章《[譯]Java異常處理的最...
閱讀 1259·2021-10-11 10:57
閱讀 2045·2021-09-02 15:15
閱讀 1607·2019-08-30 15:56
閱讀 1195·2019-08-30 15:55
閱讀 1157·2019-08-30 15:44
閱讀 977·2019-08-29 12:20
閱讀 1321·2019-08-29 11:12
閱讀 1066·2019-08-28 18:29