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