最近查了許多關于異常的資料,Java 異常分為Checked Exception 和 UnChecked Exception。對于現有的編程語言來說,Java是唯一提供Checked Exception機制的流行語言。
???我在工程的開發中,對異常的定義常存在粒度上的考慮,如果粒度較細,定義到具體類型的異常,總覺力不從心。所以常常采用粗粒度開發,即以包為粒度,一個包定義一個異常(Checked Exception )。
???在方法相互調用時,在各個包相互關聯的時候,常常只是把這個異常作為新異常的cause拋出。在很少的時候才進行相應的處理(比如內存溢出,做一些相應的拋棄工作),最多的時候只是記錄日志繼續拋出。
???在查閱Checked Exception的作用時,大多書籍都是如下意思:捕獲到錯誤,是為了進行處理,如果處理不了或者不處理就繼續往上層傳,直到一個地方來處理這個異常。在我所做的工作中,確實有需要處理的地方,但是直接到最外層顯示給用戶的更多。
???在大量的資料中,有如下歸納:假如調用無法對拋出的意外做任何處理,就拋出UnChecked Exception;如果能對拋出的異常進行處理,則用Checked Exception。??
???