Java異常處理中try,catch,finally的各種組合用法
阿新 • • 發佈:2019-01-07
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的話,方法後面就不必宣告異常了。
注意點:
每次執行後輸出結果的順序可能都不太相同,這是因為採用不同的流列印的結果,不必太在意。