原文:try和finally中都有return語句,執行哪一個return?

try 中的 return 語句調用的函數先於 finally 中調用的函數執行,也就是說 try 中的 return 語句先執行,finally 語句后執行,但try中的 return 並不是讓函數馬上返回結果,而是 return 語句執行后,將把返回結果放置進函數棧中,此時函數並不是馬上返回,它要執行 finally 語句后才真正開始返回。但此時會出現兩種情況: 如果finally中也有re ...

2019-01-07 17:51 0 1687 推薦指數:

查看詳情

try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執行,什么時候被執行,還是在return之后執行

這是一個很有趣的問題,我測試的結果是:是在return中間執行。 我在網上搜尋了一些資料,下面是參考代碼: 輸出結果: 下面是我在debug時,抓取的圖片: 上圖是程序執行try模塊里面:變量"i"的值的情況。 上圖是程序執行到了try模塊中 ...

Wed Dec 11 02:44:00 CST 2013 5 48962
try{}里有一個return語句,那么緊跟在這個try后的finally{}里的代碼會不會被執行,什么時候被執行,在return前還是后?

執行,在方法返回調用者前執行。 注意:在finally中改變返回值的做法是不好的,因為如果存在finally代碼塊,try中的return語句不會立馬返回調用者,而是記錄下返回值待finally代碼塊執行完畢之后再向調用者返回其值,然后如果在finally中修改了返回值,就會返回 ...

Sat Apr 21 23:08:00 CST 2018 0 1228
try{}里有一個 return 語句,那么緊跟在這個 try 后的 finally {}里的 code 會 不會被執行,什么時候被執行,在 return 前還是后?

  這是一道面試題,首先finally{}里面的code肯定是會執行的,至於在return前還是后, 看答案說的是在return執行,我覺得不對,百度了一下,有說return前的,有說return后的,還有return中間執行的。遂做了一個小測試如下: static ...

Fri Mar 02 07:17:00 CST 2018 4 597
try {}里有一個 return 語句,那么緊跟在這個 try 后的 finally {}里的 code 會不會被執行,什么時候被執行,在 return 前還是后?

會在return中間執行try 中的 return 語句調用的函數先於 finally 中調用的函數執行,也就是說 return 語句執行finally 語句執行,但 return 並不是讓函數馬上返回,而是 return 語句執行后,將把返回結果放置進函數棧中,此時函數並不是 ...

Wed Mar 08 19:37:00 CST 2017 0 5721
try..catch..finally執行順序return

try..catch..finally這個語法大家都很熟悉,就是捕捉異常、處理異常,面試中經常被問到的一個問題是:如果在try...catch中的某某地方return了,那么之后的某某步驟還會不會執行。今天就來用代碼分析一下各種可能的執行情況,懶得看文章的話,直接看最后的總結,如果不明白再回 ...

Tue Sep 09 22:21:00 CST 2014 7 2288
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM