一、異常基本介紹
概念:将程式中發生的不正常情況稱為“異常”,異常分為兩類:運作時異常和編譯時異常
二、異常體系圖

三、異常處理方式
一、try...catch...finally
程式員在代碼中捕獲發生的異常,然後自行處理,處理機制:
沒有finally的異常捕獲方式
二、throws
将發生的異常抛出,交給調用者來處理,最頂級的處理着就是JVM,處理機制:
1、如果一個方法在執行中可能生成異常,但不确定如何處理這種異常,則此方法應顯示的聲明抛出異常,表明該方法将不對這些異常進行處理,而由該方法的調用者負責處理
2、在方法聲明中用throws語句可以聲明抛出異常的清單,throws後面的異常類型可以是方法中産生的異常類型,也可以是他的父類
三、使用細節
- 對于編譯異常,程式必須處理
- 對于運作時異常,程式如果沒有處理,預設就是throws的處理方式
- 子類重寫父類方法的時候,對抛出異常的規定:子類重寫的方法,所抛出的異常類型要麼和父類抛出的一緻,要麼為父類抛出的異常類型的子類型
- 在throws過程中,如果有方法try...catch,就相當于處理異常,不必使用throws
四、自定義異常
當程式中出現了某些錯誤,但該錯誤資訊并沒有在throwable子類中處理,這個時候可以自己設計異常類,用于描述該錯誤資訊
一、自定義異常步驟
- 定義類,自定義異常類名繼承Exception或者RuntimeException
- 如果繼承Exception,則屬于編譯異常
- 如果繼承RuntimeException,則屬于運作異常
二、throw和throws差別
我亦無他,唯手熟爾