java中異常的都是派生與Throwable,層次如下:
Throwable-----1、Error
-----2、Exception
------2.1 IOException
------2.2 RuntimeException
其中 派生與2.2的異常包含:錯誤類型轉化、數組訪問越界、訪問空指針等。
java語言規範將派生於1與2.2的異常成爲未檢查異常(非檢查型異常可以不在函數聲明中添加throws語句,調用函數上也不需要強制處理,爲了保證程序再出錯後依然可以執行,在開發代碼時最好使用try...catch的異常處理機制進行處理。)。其他異常成爲已檢查異常(檢查型異常在編譯期對異常的處理有強制性的要求。在JDK代碼中大量的異常屬於檢查型異常,包括IOException,SQLException等等。)。
總之,一個方法必須聲明已檢查異常,而未檢查異常要麼不可控制(Error),要麼就應該避免發生(RuntimeException)。
參考連接:https://blog.csdn.net/witto_sdy/article/details/83858389