所有的異常都是由Throwable類繼承而來的,分為Error和Exception,Error類層次結構描述了Java運行時系統的內部錯誤和資源耗盡錯誤。Exception分為RuntimeException和IOException。由程序錯誤導致的異常屬于RuntimeException。
The rule "If it is a RuntimeException, it was your fault"
一個方法必須聲明所有可能拋出的已檢查異常,而未檢查異常要么不可控制(Error),要么就應該避免(RuntimeException)
如果超類方法沒有拋出異常,則子類方法也不能拋出任何異常。子類方法拋出的異常不能超過超類聲明的范圍。