Exception Handling
Try - Catch with Resource
Java 7 以前
需要使用 try-catch-finally 進行資源的關閉。
Java 7 以後
自動關閉資源,透過實作 java.lang.AutoCloseable 介面來使用其包含的 close 方法。
可以同時關閉多個資源,透過 " ; " 區隔,越後面撰寫的物件越早關閉。
Suppressed Exceptions
Java 7 以前
若一個例外被 catch 之後在catch 或 finally 階段又發生了例外,通常會拋出第一個錯誤,第二個則會被抑制( suppressed )。
Java 7 以後
使用 .addSuppressed()
方法,可以將第二個例外記錄在第一個例外之中。
相對應的方法是 .getSuppressed()
方法,取得 Throwable[]
參數,代表曾紀錄的錯誤。
不應在 code 中調用 .close()
方法。
這應該稱為自動JVM,手動調用可能導致意外結果。
Multi Catch
Java 7 以前
catch 中,只能一次捕捉一個例外。
Java 7 以後
catch 中 可以透過 " | " 字符,區隔的例外不可以有 繼承 的行為。
Last updated
Was this helpful?