亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于異常處理finally的問題

在try catch中,try catch之后的代碼是一定要執行的,而try catch finally中,為什么要寫finally呢?直接將finally中的代碼寫在異常處理塊之后,不是一樣會執行嗎?

正在回答

3 回答

因為在try塊中執行到a=5/0時就被catch塊捕獲,并沒有執行到return,程序一路執行下去感覺并沒有區別。假如你在catch塊中最后加入return,你會發現用finally的依舊執行,而直接寫的會報錯,提示無法執行。


1 回復 有任何疑惑可以回復我~

通常情況下,一旦方法里執行到return語句的地方,程序立即結束該方法。因為finally塊總會被執行,不管try塊中是否出現異常,不管哪個catch塊被執行,也不管try和catch塊中執行了return語句。從而保證一定能回收try塊中打開的物理資源。

1 回復 有任何疑惑可以回復我~
#1

彼時年少0 提問者

您好 我的意思是 try(a=5/0 return a)catch(除數不能為0)finally(System.out.print(a=-1))和try(a=5/0 return a)catch(除數不能為0) System.out.print("a=-1")這兩個輸出是沒區別的 為什么要用finally 直接在后面寫代碼就可以啊 謝謝解答
2017-01-17 回復 有任何疑惑可以回復我~

如果沒有異常就不會執行catch塊的內容

0 回復 有任何疑惑可以回復我~
#1

彼時年少0 提問者

是的 我不懂的地方是finally中代碼的作用,我將代碼直接寫在try catch之后 不也是會執行的嗎 那么我還寫finally干嘛呢?謝謝大神解答
2017-01-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409766    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

關于異常處理finally的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號