Java基礎---異常和異常處理 阿新 • • 發佈:2018-12-12 Java異常體系 |——Throwable (實現類描述java的錯誤和異常--超類) |——Error (錯誤)一般不通過程式碼去處理。 |——Exceprion (異常) 程式碼處理 |——RuntimeException (執行時異常) |——編譯時異常(非執行時異常,受檢異常) 兩類異常注意: 1.方法內部丟擲一個執行時異常物件,方法可以宣告丟擲也可不宣告丟擲 2.方法內部丟擲一個編異時異常物件,方法必須要宣告丟擲 3.呼叫一個宣告丟擲執行時異常型別的方法,呼叫者可處理也可不處理 4.呼叫一個宣告丟擲編譯時異常型別的方法,呼叫者必須要處理 以Error結尾代表錯誤,以Exception結尾代表異常 --------------------------------------------------------------------------------------------------------- Throwable類 (所有異常與錯誤的父類) Throwable常用的方法: 1. toString() 返回描述該異常情況的類的完整類名 = 包名 + 類名 2. getMessage() 返回建立Throwable物件的時候傳入的訊息字串 3. printStackTrace() 列印異常的棧資訊 異常的處理方式:捕獲處理 丟擲處理方式一:捕獲處理 try...catch 捕獲處理的格式: try{ 可能會發生異常的程式碼 }catch(異常的型別 變數名){ 異常處理程式碼; } 捕獲處理要注意的細節:【month201809.Demo1】【month201809.Demo2】 1. try塊的程式碼出現的異常處理之後,try-catch塊外面的程式碼可以正常執行 2. try塊中出現了異常程式碼,則try塊中異常程式碼後的所有程式碼無法正常執行 3. try塊後面可以有多個catch塊,但捕獲的異常型別必須按照從小到大 Exception可以捕獲任意型別的異常,是因為Exception是所有異常類的父類(包治百病) ----------------------------------------------------------------------------------------------------------方式二:丟擲處理 throws throw 適應情況:方法內部不想處理,或處理不了。扔出去 丟擲處理注意: 1. 方法內部丟擲編譯時異常物件時,必須在方法上宣告丟擲throws。 2. 呼叫一個宣告丟擲編譯時異常型別的方法,呼叫者必須進行異常處理 3. 一個方法如果遇到了throw關鍵字,則該方法會馬上停止執行後面程式碼。 throw與throws區別: 1. throw用在方法內部,丟擲異常物件;throws用在方法宣告,丟擲異常型別 2. throw後只丟擲一個異常物件(一次只一個),throws後跟異常型別(一次可多個) 丟擲處理和捕獲處理處理方式選擇: 如果需要告知呼叫者出了異常,則需使用丟擲處理 如果與使用者(web層)的程式碼,則使用捕獲處理 ----------------------------------------------------------------------------------------------------------自定義異常類: 自定義一個類繼承Exception即可 【month201809.Demo3】