Java提供了兩類主要的異常:runtime exception和checked exceptionchecked 異常也就是我們經常遇到的IO異常以及SQL異常都是這種異常對於這種異常JAVA編譯器強制要求我們必需對出現的這些異常進行catch所以面對這種異常不管我們是否願意只能自己去寫一大堆catch塊去處理可能的異常
但是另外一種異常runtime exception也稱運行時異常我們可以不處理當出現這樣的異常時總是由虛擬機接管比如我們從來沒有人去處理過 NullPointerException異常它就是運行時異常並且這種異常還是最常見的異常之一
關於這兩類異常的使用網上存在著一些辯論合理的使用這兩類異常有利於我們寫程序時代碼的健壯性和合理性看完上面的鏈接裡的那些辯論之後自己總結如下
. 當要決定是采用checked exception還是Unchecked exception的時候你要問自己一個問題如果這種異常一旦拋出客戶端會做怎樣的補救?
. 保護封裝性(Preserve encapsulation)
. 不要創建沒有意義的異常(Try not to create new custom exceptions if they do not have useful information for client code)
. 總是要做一些清理工作(Always clean up after yourself)
. 不要使用異常來控制流程(Never use exceptions for flow control)
. 在異常的底層記錄日志(Log exceptions just once )
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27175.html