異常的總結(jié)(Checked Exception)
最近查了許多關(guān)于異常的資料,Java 異常分為Checked Exception 和 UnChecked Exception。對于現(xiàn)有的編程語言來說,Java是唯一提供Checked Exception機(jī)制的流行語言。
???我在工程的開發(fā)中,對異常的定義常存在粒度上的考慮,如果粒度較細(xì),定義到具體類型的異常,總覺力不從心。所以常常采用粗粒度開發(fā),即以包為粒度,一個包定義一個異常(Checked Exception )。
???在方法相互調(diào)用時,在各個包相互關(guān)聯(lián)的時候,常常只是把這個異常作為新異常的cause拋出。在很少的時候才進(jìn)行相應(yīng)的處理(比如內(nèi)存溢出,做一些相應(yīng)的拋棄工作),最多的時候只是記錄日志繼續(xù)拋出。
???在查閱Checked Exception的作用時,大多書籍都是如下意思:捕獲到錯誤,是為了進(jìn)行處理,如果處理不了或者不處理就繼續(xù)往上層傳,直到一個地方來處理這個異常。在我所做的工作中,確實有需要處理的地方,但是直接到最外層顯示給用戶的更多。
???在大量的資料中,有如下歸納:假如調(diào)用無法對拋出的意外做任何處理,就拋出UnChecked Exception;如果能對拋出的異常進(jìn)行處理,則用Checked Exception。??
???
???我在工程的開發(fā)中,對異常的定義常存在粒度上的考慮,如果粒度較細(xì),定義到具體類型的異常,總覺力不從心。所以常常采用粗粒度開發(fā),即以包為粒度,一個包定義一個異常(Checked Exception )。
???在方法相互調(diào)用時,在各個包相互關(guān)聯(lián)的時候,常常只是把這個異常作為新異常的cause拋出。在很少的時候才進(jìn)行相應(yīng)的處理(比如內(nèi)存溢出,做一些相應(yīng)的拋棄工作),最多的時候只是記錄日志繼續(xù)拋出。
???在查閱Checked Exception的作用時,大多書籍都是如下意思:捕獲到錯誤,是為了進(jìn)行處理,如果處理不了或者不處理就繼續(xù)往上層傳,直到一個地方來處理這個異常。在我所做的工作中,確實有需要處理的地方,但是直接到最外層顯示給用戶的更多。
???在大量的資料中,有如下歸納:假如調(diào)用無法對拋出的意外做任何處理,就拋出UnChecked Exception;如果能對拋出的異常進(jìn)行處理,則用Checked Exception。??
???
posted on 2006-05-10 22:50 crazycy 閱讀(2224) 評論(4) 編輯 收藏 所屬分類: JavaSE語言