您好,登錄后才能下訂單哦!
小編給大家分享一下Java中error和exception的區別有哪些,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
Java中error和exception的區別:Error錯誤是程序無法處理的錯誤,這些錯誤標識故障發生于虛擬機自身或者發生在虛擬機試圖執行應用時,一般不需要程序處理。exception異常是程序本身可以處理的異常.
Error
:錯誤是程序無法處理的錯誤,這些錯誤標識故障發生于虛擬機自身或者發生在虛擬機試圖執行應用時,一般不需要程序處理。
Error(錯誤)和exception(異常)都是java.lang.Throwable
類的子類。Error錯誤是任何處理技術都無法恢復的情況。這肯定會導致程序非正常終止。Error錯誤屬于未檢查類型,大多數發生在運行時。Error錯誤的一些例子是內存不足錯誤或系統崩潰錯誤。
// 通過無限遞歸演示堆棧溢出錯誤 class StackOverflow { public static void test(int i) { if (i == 0) return; else { test(i++); } } } public class ErrorEg { public static void main(String[] args) { StackOverflow.test(5); } }
輸出:
Exception in thread "main" java.lang.StackOverflowError at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) ...
exception
:是程序本身可以處理的異常。
異常是在運行時發生并可能導致程序終止的條件。但是,使用try
、catch
和throw
關鍵字可以恢復它們。
異常分為兩類:已檢查異常和未檢查異常。編譯器在編譯時知道已檢查的異常(如IOException
),而編譯器在運行時知道未檢查的異常(如ArrayIndexOutOfBoundException
)。它主要是由程序員編寫的程序引起的。
public class ExceptionEg { public static void main(String[] args) { int a = 5, b = 0; try { int c = a / b; } catch (ArithmeticException e) { e.printStackTrace(); } } }
輸出:
java.lang.ArithmeticException: / by zero at ExceptionEg.main(ExceptionEg.java:8)
看完了這篇文章,相信你對Java中error和exception的區別有哪些有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。