return和finally執行順序

2021-06-03 21:49:02 字數 970 閱讀 5026

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

finally

111 

這說明執行到return b += 88;這句時,先計算出了b=111,但不return,再跳到finally執行。

public class test1

public static int tt()

catch (exception e)

finally

system.out.println("finally");

return 100;

} }}

執行結果:

yesb>25      :      111

finally

100return 100;覆蓋掉了return b += 88;

public class test2

public static int tt()

catch (exception e)

finally

system.out.println("finally");

b = 100;

} return b;

}}

執行結果:

yesb>25      :      111

finally

111說明了乙個問題,如果finally語句中沒有返回語句覆蓋的話,那麼原來的返回值就不會變,不管你是不是改變了要返回的那個變數.

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

public class trydemo finally public static void main string args 輸出結果 執行finally模組 0由此得出結論 當 try 塊和 catch 塊中有 return 語句時,finally 仍然會被執行。執行 try 塊或 catch...

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再執行後面的一段。...