Java中異常的概念和分類
阿新 • • 發佈:2021-08-22
異常就是程式在編譯時發生的意想不到的情況,一般而言分為兩類:錯誤(Error)和異常(Exception)
Error: 分為兩種:
程式編寫出現語法錯誤
Exception: 所有異常類的父類(我們說的異常處理一般就是處理與Exception類相關的異常,Exception和Error合起來被稱作異常,但Exception自身也可以被稱為異常,通常我們說的異常指的就是Exception及其子類
Exception異常分為編譯時異常和執行時異常,由於我們無法預測程式裡可能出現的錯誤或使用者在使用程式時會出現的錯誤,所以需要異常類來告訴我們程式出現了異常,比如0不能作為除數,但使用者硬是用做了除數怎麼辦?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println(1/a);
}
Exception的子類被分為兩大類:編譯時異常,執行時異常
編譯時異常: 在編寫程式碼時如果有此類異常則必須被捕獲(catch)或丟擲(throw)
執行時異常: 可以不必再編寫程式碼時捕獲或丟擲
說明: 所有異常都可以被捕獲或丟擲,如果異常最終沒有被捕獲而是被丟擲的話程式會立即終止執行並列印異常資訊,另外,如果不捕獲執行時異常,預設會丟擲執行時異常
編譯時異常的特徵: 直接繼承自Exception類,不繼承RuntimeException,必須被顯式的捕獲或丟擲
執行時異常的特徵: 繼承自RuntimeException類,可以不被顯式的捕獲或丟擲,如果不被顯式的捕獲則預設會被丟擲