Java中異常和錯誤的區別
異常和錯誤都是Throwable類的子類。錯誤表示主要由於系統資源不足而發生的問題,我們的應用程式不應該捕獲這些型別的問題。一些錯誤的例子包括系統崩潰錯誤和記憶體不足錯誤。錯誤大多發生在執行時,因此它們屬於未檢查型別。
異常是在執行時和編譯時都可能發生的問題。它主要發生在開發人員編寫的程式碼中。異常分為兩類:已檢查異常和未檢查異常。
| 序號 | 關鍵 | 錯誤 | 異常 |
|---|---|---|---|
| 1 | 型別 | 歸類為未檢查型別 | 歸類為已檢查和未檢查型別 |
| 2 | 包 | 屬於java.lang.error | 屬於java.lang.Exception |
| 3 | 可恢復/不可恢復 | 不可恢復 | 可恢復 |
| 4 | 不會在編譯時發生 | 會在執行時和編譯時發生 | |
| 5 | 示例 | OutOfMemoryError,IOError | NullPointerException,SqlException |
錯誤示例
public class ErrorExample { public static void main(String[] args){ recursiveMethod(10) } public static void recursiveMethod(int i){ while(i!=0){ i=i+1; recursiveMethod(i); } } }
輸出
Exception in thread "main" java.lang.StackOverflowError at ErrorExample.ErrorExample(Main.java:42)
異常示例
public class ExceptionExample { public static void main(String[] args){ int x = 100; int y = 0; int z = x / y; } }
輸出
java.lang.ArithmeticException: / by zero at ExceptionExample.main(ExceptionExample.java:7)
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP