try catch finally的執(zhí)行順序深入分析
更新時(shí)間:2013年09月10日 15:52:42 作者:
首先執(zhí)行try,如果有異常執(zhí)行catch,無(wú)論如何都會(huì)執(zhí)行finally,當(dāng)有return以后,函數(shù)就會(huì)把這個(gè)數(shù)據(jù)存儲(chǔ)在某個(gè)位置,然后告訴主函數(shù),我不執(zhí)行了,接下來(lái)你執(zhí)行吧,所以函數(shù)就會(huì)推出
首先執(zhí)行try,如果有異常執(zhí)行catch,無(wú)論如何都會(huì)執(zhí)行finally
一個(gè)函數(shù)中肯定會(huì)執(zhí)行finally中的部分。
關(guān)于一個(gè)函數(shù)的執(zhí)行過(guò)程是,當(dāng)有return以后,函數(shù)就會(huì)把這個(gè)數(shù)據(jù)存儲(chǔ)在某個(gè)位置,然后告訴主函數(shù),我不執(zhí)行了,接下來(lái)你執(zhí)行吧,所以函數(shù)就會(huì)推出。
但是當(dāng)一個(gè)函數(shù)中出現(xiàn)finally以后,finally永遠(yuǎn)都要執(zhí)行,所以,就算try或者catch中已經(jīng)執(zhí)行了return了,但是這時(shí)函數(shù)不會(huì)退出,不會(huì)告訴主函數(shù)去執(zhí)行,而是等待finally執(zhí)行完了才回去告訴主函數(shù)去執(zhí)行,這時(shí)候如果finally中出現(xiàn)了return的話,這次return的值就會(huì)覆蓋掉try或者catch中的值,然后才會(huì)告訴主函數(shù):我不執(zhí)行了,你去執(zhí)行吧。所以主函數(shù)會(huì)得到finally中的返回值。也就是說(shuō)子函數(shù)的返回值永遠(yuǎn)是finally中的返回值(只要被調(diào)用的函數(shù)中有值)
一個(gè)函數(shù)中肯定會(huì)執(zhí)行finally中的部分。
關(guān)于一個(gè)函數(shù)的執(zhí)行過(guò)程是,當(dāng)有return以后,函數(shù)就會(huì)把這個(gè)數(shù)據(jù)存儲(chǔ)在某個(gè)位置,然后告訴主函數(shù),我不執(zhí)行了,接下來(lái)你執(zhí)行吧,所以函數(shù)就會(huì)推出。
但是當(dāng)一個(gè)函數(shù)中出現(xiàn)finally以后,finally永遠(yuǎn)都要執(zhí)行,所以,就算try或者catch中已經(jīng)執(zhí)行了return了,但是這時(shí)函數(shù)不會(huì)退出,不會(huì)告訴主函數(shù)去執(zhí)行,而是等待finally執(zhí)行完了才回去告訴主函數(shù)去執(zhí)行,這時(shí)候如果finally中出現(xiàn)了return的話,這次return的值就會(huì)覆蓋掉try或者catch中的值,然后才會(huì)告訴主函數(shù):我不執(zhí)行了,你去執(zhí)行吧。所以主函數(shù)會(huì)得到finally中的返回值。也就是說(shuō)子函數(shù)的返回值永遠(yuǎn)是finally中的返回值(只要被調(diào)用的函數(shù)中有值)
相關(guān)文章
eclipse連接不到genymotion問(wèn)題的解決方案
今天小編就為大家分享一篇關(guān)于eclipse連接不到genymotion問(wèn)題的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03SpringBoot之配置logging日志及在控制臺(tái)中輸出過(guò)程
這篇文章主要介紹了SpringBoot之配置logging日志及在控制臺(tái)中輸出過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06如何使用Spring?Boot設(shè)置上傳文件大小限制
上傳文件是互聯(lián)網(wǎng)中常應(yīng)用的場(chǎng)景之一,最典型的情況就是上傳頭像等,下面這篇文章主要給大家介紹了關(guān)于如何使用Spring?Boot設(shè)置上傳文件大小限制的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01如何在springboot中配置和使用mybatis-plus
這篇文章主要給大家介紹了關(guān)于如何在springboot中配置和使用mybatis-plus的相關(guān)資料,MyBatis?Plus是MyBatis的增強(qiáng)版,旨在提供更多便捷的特性,減少開發(fā)工作,同時(shí)保留了MyBatis的靈活性和強(qiáng)大性能,需要的朋友可以參考下2023-11-11Mybatis使用JSONObject接收數(shù)據(jù)庫(kù)查詢的方法
這篇文章主要介紹了Mybatis使用JSONObject接收數(shù)據(jù)庫(kù)查詢,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12