天天看點

四、異常(高琪java300集+java從入門到精通筆記)

異常機制( 就是當程式出現錯誤,程式安全退出的機制):

  1. 異常:
四、異常(高琪java300集+java從入門到精通筆記)
  1. RuntimeException 運作時異常
    1. CheckedException

      已檢查異常:如IOException、SQLException等以及使用者自定義的Exception異常

  2. 捕捉異常(在目前方法中進行捕捉,然後處理該異常):try catch(先小後大) finally

try(用來存放的是可能發生異常的Java語句):一個try語句必須帶有至少一個catch語句塊和一個finally語句塊

catch(用來激發被捕獲的異常):常用方法,這些方法均繼承自Throwable類。

Exception e(Exception是try代碼塊傳遞給catch代碼塊的變量類型,e是變量名)

e.toString ()方法,顯示異常的類名和産生異常的原因

     e.getMessage()方法,隻顯示産生異常的原因,但不顯示類名。

     e.printStackTrace()方法,用來跟蹤異常事件發生時堆棧的内容。
           

如果異常類之間有繼承關系,在順序安排上需注意。越是頂層的類,越放在下面,也就是先捕獲子類異常再捕獲父類異常。再不然就直接把多餘的catch省略掉。

finally:1.通常在finally中關閉程式塊已打開的資源,比如:關閉檔案流、釋放資料庫連接配接等(注意順序:先打開的最後關閉)。

2.即使try和catch塊中存在return語句,finally語句也會執行。是在執行完finally語句後再通過return退出。

3.
           

finally語句塊隻有一種情況是不會執行的,那就是在執行finally之前遇到了System.exit(0)結束程式運作。(finally語句塊中發生了異常、程式所在的線程死亡、關閉CPU)

  1. 聲明抛出異常(目前方法并不需要處理發生的異常,而是向上傳遞(抛出)給調用它的方法(方法調用者)處理, 如果一個方法中可能産生某種異常,但是并不能确定如何處理這種異常,則應根據異正常範在方法的首部聲明該方法可能抛出的異常。):throws

  2. 重寫時注意子類異常範圍小于父類
  3. 向上抛出後,方法調用者不想處理,還可繼續向上抛出
  4. Error,RuntimeException或它們的子類,可以不throws,最終被系統抛出
  5. 手動抛出異常:throw:通常用于方法體中,程式執行到throw立即終止

一般在方法中手動抛出異常,該方法要throws給上一級(一般是main),main函數中調用該方法時要try-catch捕捉。

  1. 自定義異常

數中調用該方法時要try-catch捕捉。

  1. 自定義異常
    1. extends Exception或者他的子類

繼續閱讀