4 回答

TA貢獻(xiàn)18條經(jīng)驗(yàn) 獲得超15個(gè)贊
我的理解是,當(dāng)走到try里時(shí)return返回的1被存在一個(gè)臨時(shí)的變量里,此時(shí)若沒(méi)有發(fā)生異常,一定會(huì)進(jìn)入到finally代碼塊里(聽(tīng)我這的一個(gè)老工程師說(shuō)底層其實(shí)是使用了goto方法進(jìn)入到finally里的)。此時(shí)finally里再次使用return把2賦到了剛才存儲(chǔ)1的臨時(shí)變量里。然后返回的值就變成了2。
不過(guò)在項(xiàng)目中是不推薦在finally里使用return的

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
try catch finally 這種機(jī)制要求finally塊中的語(yǔ)句必須執(zhí)行,所以最終會(huì)返回2而不是1.

TA貢獻(xiàn)1123條經(jīng)驗(yàn) 獲得超629個(gè)贊
當(dāng)try中語(yǔ)句return之前會(huì)先執(zhí)行finally中的語(yǔ)句,但這里在finally里面return了,所以實(shí)際不會(huì)return 1,而是return 2
最后結(jié)果是2

TA貢獻(xiàn)174條經(jīng)驗(yàn) 獲得超85個(gè)贊
.................我覺(jué)得編譯應(yīng)該會(huì)失敗把.....語(yǔ)法明顯有問(wèn)題啊
返回1以后,finally語(yǔ)句就執(zhí)行不到了
添加回答
舉報(bào)