哈士奇WWW
2023-01-12 22:18:11
如:try{...}catch(Exception e){...}finally{System.out.println(e)}和try{...}catch(Exception e){...}System.out.println(e);它們的System.out.println(e)都會執行;那寫在finally{}里面有什么用?
1 回答

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
try{}catch(){}finally{}該結構是用來捕捉異常信息的,異常來源于try塊中,在catch中進行處理finally可以對資源進行釋放或其他操作1.假如在try中沒有異常產生,并returnfinally仍然會執行,將return的結果保存,執行完finally在return2,在1的基礎上,如果finally中最后也return那個,try中的return會失效,執行finally中return3.如果try或者catch(有異常的情況下)中不是return而是寫的是System.exit(0);那么finally此時不執行,直接關閉虛擬機。4.在2的基礎上,如果finally中嵌套tryfinally結構的話,執行完finally里面的try在執行finally中的finally5.在4的基礎上如下代碼會產生錯誤try{}catch(){}finally{try{}catch(){}finally{return1;}return0;}因為finally要求代碼必須被執行,虛擬機此時不知道return1必須被執行,還是return0必須被執行,因為他么都在finally中,希望對你有所幫助
添加回答
舉報
0/150
提交
取消