Java中finally與return的執行順序

2021-07-22 11:12:00 字數 486 閱讀 5705

finally不會執行的兩種情況:

1.finally對應的try塊語句還沒被執行到就返回了
2.finally對應的try塊語句中有system.exit()這樣的語句

finally塊的語句在try或catch中的return語句

執行之後返回之前執行

若finally裡也有return語句,則

覆蓋try或catch裡的return的值後返回

finally裡的修改語句(不是return)不影響try或catch中return的值:

可認為try或catch中的return返回的值

複製乙份放入執行緒棧的頂部,如果值是基本型別,則修改的不是同乙份,因此不影響;如果值是物件的引用(複製的是引用,則都是

指向同乙個物件),是可以修改引用所指向的物件的,但仍然無法修改引用(值)

java中finally和return的執行順序

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

Java異常捕獲機制中的finally

package day08 finally塊 finally塊定義在異常捕獲機制的最後 可以直接跟在try塊之後或最後乙個catch塊之後。finally塊中的 一定會執行,無論try塊中的 是否丟擲異常。所以通常會把釋放資源等操作放在finally中,例如關閉流等。author kaixu pub...

java中finally一定會執行嗎?

面試的時候,經常會被問到finally的用法,是否一定會執行,有return的情況會怎麼樣?大多數應該都認為finally 是一定會被執行的,其實不然。看下面的 public int getnum try catch exception e finally return num 通過測試發現,如果程...