已檢查異常:這類異常在編譯時會被檢查,必須顯式處理。通常是由於程序員的錯誤導致的,比如IO操作中的IOException、SQL操作中的SQLException等。處理已檢查異常主要通過兩種方式:在方法簽名中聲明該方法拋出異常,或者在方法體中使用try-catch語句塊來捕獲並處理異常。
未檢查異常:這類異常又被稱為運行時異常,是在運行時才可能被拋出的異常。這類異常通常是由於程序邏輯錯誤導致的,比如NullPointerException、ArrayIndexOutOfBoundsException等。未檢查異常不需要在方法簽名中聲明,也不需要在方法體中使用try-catch語句塊來捕獲。
以下是Java編程中常見的壹些已檢查異常和未檢查異常:
已檢查異常:
IOException:處理輸入輸出操作時可能會拋出的異常。
SQLException:處理數據庫操作時可能會拋出的異常。
ClassNotFoundException:當應用程序試圖加載類時,如果找不到指定的類,會拋出此異常。
NoClassDefFoundError:當JVM或ClassLoader無法找到類的定義時,會拋出此異常。
InterruptedException:當線程正在等待、睡眠、或者占用某個對象,而其他線程中斷了該線程時,會拋出此異常。
未檢查異常:
NullPointerException:當應用程序試圖在需要對象的地方使用null時,會拋出此異常。
ArrayIndexOutOfBoundsException:當應用程序試圖訪問數組的壹個不存在的索引時,會拋出此異常。
ClassCastException:當應用程序試圖將對象強制轉換為不兼容的類型時,會拋出此異常。
ArithmeticException:當應用程序執行除以零的操作時,會拋出此異常。
IllegalArgumentException:當應用程序傳遞非法或不適當的參數給方法時,會拋出此異常。
IllegalStateException:當應用程序處於不合法或不適宜的狀態,而調用了某個方法時,會拋出此異常。
ConcurrentModificationException:當應用程序在叠代壹個集合的同時,另壹個線程修改了該集合的結構,會拋出此異常。
SecurityException:當應用程序試圖執行某些安全策略不允許的操作時,會拋出此異常。
IllegalAccessException:當應用程序試圖訪問或修改壹個類的受保護的或私有的成員時,會拋出此異常。
NoSuchMethodException:當應用程序試圖調用壹個不存在的方法時,會拋出此異常。
NoSuchFieldException:當應用程序試圖訪問壹個不存在的字段時,會拋出此異常。
InvocationTargetException:當應用程序通過反射調用壹個方法時,如果發生異常,會拋出此異常。
以上是Java編程中常見的壹些異常類型,但實際上Java中還有許多其他的異常類型。在實際編程中,了解和正確處理這些異常是非常重要的,因為它們能幫助我們更好地理解和維護代碼的穩定性和可靠性。