『壹』 java中error與exception的區別是什麼
一、含義不同:
Error類一般是與虛擬機相關的問題,如系統崩潰,虛擬機錯誤,內存空間不足,方法調用棧溢等。對於這類錯誤的導致的應用程序中斷,僅靠程序本身無法恢復和和預防,遇到這樣的錯誤,建議讓程序終止。
Exception類表示程序可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程序恢復運行,而不應該隨意終止異常。
二、用途不同:
Exception和Error體現了Java平台設計者對不同異常情況的分類。Exception是程序正常運行中,可以預料的意外情況,可能並且應該被捕獲,進行相應處理。
Error是指在正常情況下,不大可能出現的情況,絕大部分的Error都會導致程序處於非正常的、不可恢復狀態。既然是非正常情況,所以不便於也不需要捕獲,常見的比如OutOfMemoryError之類,都是Error的子類。
好處
讓異常處理與業務邏輯的主線分離,我們可以對可以遇見的異常作分支處理,其實將業務邏輯與異常處理分離也是Exception設計的主旨,其次Java Exception 不需要像C語言那樣在程序的多個地方去檢測同一個錯誤,並就地作異常的處理,相比老式的錯誤處理,現行的錯誤處理的結構則來的更加清晰。
以上內容參考:網路-Exception
『貳』 java中error和exception的區別
error是程序錯誤,不是可捕獲的
exception是可捕獲的異常
『叄』 java中error和exception的區別
Error類和Exception類的父類都是throwable類,他們的區別是:
Error類一般是指與虛擬機相關的問題,如系統崩潰,虛擬機錯誤,內存空間不足,方法調用棧溢等。對於這類錯誤的導致的應用程序中斷,僅靠程序本身無法恢復和和預防,遇到這樣的錯誤,建議讓程序終止。
Exception類表示程序可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程序恢復運行,而不應該隨意終止異常。
Exception類又分為運行時異常(Runtime Exception)和受檢查的異常(Checked Exception ),運行時異常;ArithmaticException,IllegalArgumentException,編譯能通過,但是一運行就終止了,程序不會處理運行時異常,出現這類異常,程序會終止。而受檢查的異常,要麼用try。。。catch捕獲,要麼用throws字句聲明拋出,交給它的父類處理,否則編譯不會通過。
『肆』 java中exception和error有什麼區別
首先從繼承方面來說,Error和Exception都是Throwable的子類。所以從根本上你可以理解他們是差不多的,程序出了問題就拋出。然後一般意義來講,區別就是Error比Exception更嚴重,不易通過後續代碼處理和修復,不應該被代碼catch到的錯誤。而Exception是指嚴重程度較輕的程序問題,相較於Error更容易被後續代碼處理和修復的,有些需要通過try catch代碼處理,有些不建議通過try catch代碼處理。
知識延伸:
Exception分兩種,checked和unchecked。checked Exception就是在寫代碼的時候,IDE(比如Eclipse)會要求你寫try catch的那種Exception,比如IOException。這種Exception是Java的設計者要求你的程序去處理的。這種異常一般不會影響程序的主體,容易手動診斷修復,所以Java要求你在catch下面寫出處理的代碼,以保證程序遇到此類exception之後還可以正常運行。unchecked這一類就是你在代碼處理了checked exception之後,你在運行時候依然會遇到的exception,所以又叫做RunTimeException,比如NullPointerException, IndexOutOfBoundsException。此類exception相較於前面那種更容易影響程序運行,從設計者角度不提倡從程序中catch出來並處理,當然你也可以這么做。
Error就是程序運行時候拋出的最嚴重級別的錯誤了,如VirtualMachineError,ThreadDeath。拋出了Error的程序從Java設計的角度來講,程序基本不可以通過後續代碼修復,從而理應終止。當然,從語法上來講,所有這些都可以被寫進catch裡面,但是Error因為上述原因,不應該被代碼處理。