當finally和return並存時的執行情況

2021-10-01 02:43:16 字數 502 閱讀 2027

public

class

trydemo

finally

}public

static

void

main

(string args)

}

輸出結果:

執行finally模組

0

由此得出結論:

當 try **塊和 catch **塊中有 return 語句時,finally 仍然會被執行。

執行 try **塊或 catch **塊中的 return 語句之前,都會先執行 finally 語句。

無論在 finally **塊中是否修改返回值,返回值都不會改變,仍然是執行 finally **塊之前的值。

一般不會在finally中寫return語句。但如果finally中有return語句,執行的是finally的return語句,try或 catch中的返回值不會被返回。

return和finally執行順序

public class test public static int tt catch exception e finally system.out.println finally system.out.println come here return b 執行結果 yesb 25 111 fin...

java中finally和return的執行順序

注意 return的位置。從這幾個例子中可以看到,如果try之前沒有有條件的return,則try.catch finally語句塊中的語句都是順序執行 如果try中或者catch中 有return語句,那麼先執行該return,然後執行finally,如果finally中也有return,該出的返...

finally和return的執行順序

當finally呼叫的任何可變api,會修改返回值 當finally呼叫任何的不可變api,對返回值沒有影響。總結一下 其實return與finally並沒有明顯的誰強誰弱。在執行時,是return語句先把返回值寫入但記憶體中,然後停下來等待finally語句塊執行完,return再執行後面的一段。...