這篇文章主要講解了“在java中try catch finally的執(zhí)行順序是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“在java中try catch finally的執(zhí)行順序是什么”吧!
創(chuàng)新互聯(lián)專注于尉氏網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供尉氏營銷型網(wǎng)站建設(shè),尉氏網(wǎng)站制作、尉氏網(wǎng)頁設(shè)計、尉氏網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造尉氏網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供尉氏網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。關(guān)于trycatchfinally的執(zhí)行順序結(jié)論:
1,不管有沒有出現(xiàn)異常,最后塊中代碼都會執(zhí)行;
2,當嘗試和捕獲中有返回時,最后仍然會執(zhí)行;
3,最后是在返回后面的表達式運算后執(zhí)行的(此時并沒有返回運算后的值,而是先把要返回的值保存起來,不管最后中的代碼怎么樣,返回的值都不會改變,任然是之前保存的值),所以函數(shù)返回值是在最后執(zhí)行前確定的;
4,最后中間好不要包含返回,否則程序會提前退出,返回值不是嘗試或捕獲中保存的返回值。
關(guān)于trycatchfinally的執(zhí)行順序舉例:
情況1:try{}catch(){}finally{}返回;
顯然程序按順序執(zhí)行。
情況2:嘗試{返回;}catch(){}finally{}return;
程序執(zhí)行tryblock返回之前(包括return語句中的表達式運算)代碼;
再執(zhí)行finally塊,最后執(zhí)行try中返回;
最后塊之后的語句返回,因為程序在嘗試中已經(jīng)返回所以不再執(zhí)行。
情況3:try{}catch(){return;}finally{}return;
程序先執(zhí)行嘗試,如果遇到異常執(zhí)行catch塊,
有異常:則執(zhí)行捕撈中返回之前(包括返回語句中的表達式運算)代碼,再執(zhí)行最后語句中全部代碼,
最后執(zhí)行捕捉塊中的回報。終于之后也就是4處的代碼不再執(zhí)行。
無異常:執(zhí)行完再試最后再返。
情況4:試試{返回;}catch(){}finally{return;}
程序執(zhí)行tryblock返回之前(包括return語句中的表達式運算)代碼;
再執(zhí)行finally塊,因為finally塊中有返回所以提前退出。
情況5:try{}catch(){return;}finally{return;}
程序執(zhí)行catch塊中返回之前(包括return語句中的表達式運算)代碼;
再執(zhí)行finally塊,因為finally塊中有返回所以提前退出。
情況6:try{return;}catch(){return;}finally{return;}
程序執(zhí)行tryblock中返回之前(包括return語句中的表達式運算)代碼;
有異常:執(zhí)行catch塊中返回之前(包括返回語句中的表達式運算)代碼;
再再行最終塊,因為最終塊中有返回所以提前退出。
無異常:則再執(zhí)行最后塊,因為最終塊中有返回所以提前退出
感謝各位的閱讀,以上就是“在java中try catch finally的執(zhí)行順序是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對在java中try catch finally的執(zhí)行順序是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!