try catch finally的执行顺序到底是怎样的?
生活随笔
收集整理的這篇文章主要介紹了
try catch finally的执行顺序到底是怎样的?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先執(zhí)行try,如果有異常執(zhí)行catch,無論如何都會執(zhí)行finally
一個函數(shù)中肯定會執(zhí)行finally中的部分。
關于一個函數(shù)的執(zhí)行過程是,當有return以后,函數(shù)就會把這個數(shù)據(jù)存儲在某個位置,然后告訴主函數(shù),我不執(zhí)行了,接下來你執(zhí)行吧,所以函數(shù)就會推出。
但是當一個函數(shù)中出現(xiàn)finally以后,finally永遠都要執(zhí)行,所以,就算try或者catch中已經(jīng)執(zhí)行了return了,但是這時函數(shù)不會退出,不會告訴主函數(shù)去執(zhí)行,而是等待finally執(zhí)行完了才回去告訴主函數(shù)去執(zhí)行,這時候如果finally中出現(xiàn)了return的話,這次return的值就會覆蓋掉try或者catch中的值,然后才會告訴主函數(shù):我不執(zhí)行了,你去執(zhí)行吧。所以主函數(shù)會得到finally中的返回值。也就是說子函數(shù)的返回值永遠是finally中的返回值(只要被調用的函數(shù)中有值)
一個函數(shù)中肯定會執(zhí)行finally中的部分。
關于一個函數(shù)的執(zhí)行過程是,當有return以后,函數(shù)就會把這個數(shù)據(jù)存儲在某個位置,然后告訴主函數(shù),我不執(zhí)行了,接下來你執(zhí)行吧,所以函數(shù)就會推出。
但是當一個函數(shù)中出現(xiàn)finally以后,finally永遠都要執(zhí)行,所以,就算try或者catch中已經(jīng)執(zhí)行了return了,但是這時函數(shù)不會退出,不會告訴主函數(shù)去執(zhí)行,而是等待finally執(zhí)行完了才回去告訴主函數(shù)去執(zhí)行,這時候如果finally中出現(xiàn)了return的話,這次return的值就會覆蓋掉try或者catch中的值,然后才會告訴主函數(shù):我不執(zhí)行了,你去執(zhí)行吧。所以主函數(shù)會得到finally中的返回值。也就是說子函數(shù)的返回值永遠是finally中的返回值(只要被調用的函數(shù)中有值)
?
總結
以上是生活随笔為你收集整理的try catch finally的执行顺序到底是怎样的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual C++ 2008入门经典
- 下一篇: 9月第1周国内IT技术类网站:CSDN覆