Java - 「自訂例外類型」&「將受檢例外包成非受檢例外拋出」例子

雖然最近仍在算數學迴圈中,還是跳出來一會兒,看一下這兩個例子。

第1個例子:自訂例外

這例子不難,當初一看到就有實作想法了,請直接看連結(https://ithelp.ithome.com.tw/articles/10185705)最後面的例子便可。


第2個例子:將受檢例外包成非受檢例外拋出

這例子當初無法想到如何完整實作,卡在「自訂例外」後,如何將原先的「受檢例外」包住,並拋出「自訂例外」?

請直接從連結(https://www.javaspecialists.eu/archive/Issue033.html)中,從「Wrapping Checked Exceptions in Unchecked Exceptions」開始看到最後即可。

稍微整理解法內容:先自訂例外,去繼承RuntimeException,之後在程式中去catch「受檢例外」(e.g. IOException),在該catch區塊內寫「throw new 自訂非受檢例外」。簡言之,當catch到「受檢例外」時,用「自訂非受檢例外」包住或取代「受檢例外」,然後拋出「自訂非受檢例外」。

補充:如果是針對屬於受檢例外的「IOException」想包成非受檢例外:JDK 8新增java.io.UncheckedIOException,其繼承自RuntimeException。實作可看連結(https://www.denismigol.com/posts/434/java-8-uncheckedioexception)中例子。

留言

熱門文章