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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

catch中有return語句,finally中語句執行問題

catch中有return語句,finally中語句執行問題

開滿天機 2019-03-21 18:19:29
在catch語句塊中有return語句,finally中的語句依舊會執行,有的說finally其實是在return中執行的,但是return不是原子性的嗎,中間又如何執行finally中的代碼int a = 10;try {    System.out.println(a / 0);    a = 20;} catch (Exception e) {    a = 30;    return a;} finally {    a = 40;}return a;最終返回的是30,而不是40
查看完整描述

2 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

finally中的語句肯定會執行,這里最終返回的是30,原因在于,在return a執行的時候,先把a的值返回給主調函數,再去執行finally中的代碼,然后最終返回,雖然在finally中a的值改變為40了,但是a的值在這之前已經返回給主調函數了。如果這里要想返回40,可以在a = 40;后面加一句 return a;


查看完整回答
反對 回復 2019-04-17
  • 2 回答
  • 0 關注
  • 595 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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