try catch finally的執(zhí)行順序深入分析
更新時間:2013年09月10日 15:52:42 作者:
首先執(zhí)行try,如果有異常執(zhí)行catch,無論如何都會執(zhí)行finally,當有return以后,函數就會把這個數據存儲在某個位置,然后告訴主函數,我不執(zhí)行了,接下來你執(zhí)行吧,所以函數就會推出
首先執(zhí)行try,如果有異常執(zhí)行catch,無論如何都會執(zhí)行finally
一個函數中肯定會執(zhí)行finally中的部分。
關于一個函數的執(zhí)行過程是,當有return以后,函數就會把這個數據存儲在某個位置,然后告訴主函數,我不執(zhí)行了,接下來你執(zhí)行吧,所以函數就會推出。
但是當一個函數中出現finally以后,finally永遠都要執(zhí)行,所以,就算try或者catch中已經執(zhí)行了return了,但是這時函數不會退出,不會告訴主函數去執(zhí)行,而是等待finally執(zhí)行完了才回去告訴主函數去執(zhí)行,這時候如果finally中出現了return的話,這次return的值就會覆蓋掉try或者catch中的值,然后才會告訴主函數:我不執(zhí)行了,你去執(zhí)行吧。所以主函數會得到finally中的返回值。也就是說子函數的返回值永遠是finally中的返回值(只要被調用的函數中有值)
一個函數中肯定會執(zhí)行finally中的部分。
關于一個函數的執(zhí)行過程是,當有return以后,函數就會把這個數據存儲在某個位置,然后告訴主函數,我不執(zhí)行了,接下來你執(zhí)行吧,所以函數就會推出。
但是當一個函數中出現finally以后,finally永遠都要執(zhí)行,所以,就算try或者catch中已經執(zhí)行了return了,但是這時函數不會退出,不會告訴主函數去執(zhí)行,而是等待finally執(zhí)行完了才回去告訴主函數去執(zhí)行,這時候如果finally中出現了return的話,這次return的值就會覆蓋掉try或者catch中的值,然后才會告訴主函數:我不執(zhí)行了,你去執(zhí)行吧。所以主函數會得到finally中的返回值。也就是說子函數的返回值永遠是finally中的返回值(只要被調用的函數中有值)
相關文章
Eclipse設置svn忽略文件或文件夾(svn:ignore)的操作
這篇文章主要介紹了Eclipse設置svn忽略文件或文件夾(svn:ignore)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Spring實戰(zhàn)之使用注解實現聲明式事務操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用注解實現聲明式事務操作,結合實例形式詳細分析了spring使用注解實現聲明式事務相關配置、接口實現與使用技巧,需要的朋友可以參考下2020-01-01
SpringBoot的監(jiān)控(Actuator)功能用法詳解
這篇文章主要介紹了SpringBoot的監(jiān)控(Actuator)功能用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03

