天天看點

Java異常進行中try,catch,finally的各種組合用法

1.try+catch 

程式的流程是:運作到try塊中,如果有異常抛出,則轉到catch塊去處理。然後執行catch塊後面的語句 

2.try+catch+finally 

程式的流程是:運作到try塊中,如果有異常抛出,則轉到catch塊,catch塊執行完畢後,執行finally塊的代碼,再執行finally塊後面的代碼。

如果沒有異常抛出,執行完try塊,也要去執行finally塊的代碼。然後執行finally塊後面的語句 

3.try+finally 

程式的流程是:運作到try塊中,如果有異常抛出的話,程式轉向執行finally塊的代碼。那末finally塊後面的代碼還會被執行嗎?不會!因為你沒有處理異常,是以遇到異常後,執行完finally後,方法就已抛出異常的方式退出了。 

這種方式中要注意的是,由于你沒有捕獲異常,是以要在方法後面聲明抛出異常

共同點:

1.在catch塊和finally塊中仍然可以再抛出新的異常

例如 throw new Exception("illegal invoked");

如果對于新抛出的異常沒有寫try的話,則要在方法後面聲明抛出異常

反之,如果給catch塊或finally塊裡的異常再套上一層try,catch的話,方法後面就不必聲明異常了。

注意點:

每次執行後輸出結果的順序可能都不太相同,這是因為采用不同的流列印的結果,不必太在意。