try finally的執行順序

2021-08-26 08:52:51 字數 700 閱讀 7972

我們都知道,無論怎麼樣finally中**都會被執行,一直我都以為finally的執行順序就以下兩種:

現在還有第三種情況,當finally遇上多執行緒時。**:

public class threadutil  catch (interruptedexception e) 

}}).start();

} finally }}

當執行fun()方法時,會立馬輸出try!!和finally!!

而不是在輸出try!!後等待60秒後才輸出finally!!,所以第三種執行順序:

另外補充一句話:

finally總會執行(除非是system.exit())

上面這句話意味著,如果try子句裡有return,仍然會執行finally,這種情形的執行順序是:

可能有點繞,直接看**吧

public class finallytest1 

public static int test1()

catch (exception e)

finally

return b;}}

執行結果:

try finally 執行順序

class exc public class except catch nullpointerexception e1 catch arithmeticexception e1 catch exception e3 finally system.out.println res return res ...

try finally執行先後?

有這樣的一段 public static void main string args private static int test finally 輸出結果 x 2 t 1 從結果來看,肯定是執行了,也不可能先於try執行,大多數人覺得是後於try執行,也有說是return執行中的時候執行。但是看...

異常 try finally 注意的地方

finally 異常機制中還有乙個重要的部分,就是finally,catch後面可以跟finally語句,語法如下所示 trycatch exception e finally finally內的 不管有無異常發生,都會執行。具體來說 由於finally的這個特點,它一般用於釋放資源,如資料庫連線 ...