Java例外體系
- 如圖所示:
- Error:
- Exception:
- Exception和RuntimeException:
- Exception和RuntimeException區別:
這道題主要考察的是我們對于 例外和 錯誤的理解:
作為Java的例外體系來說最頂層的抽象是一個叫Throwable的介面,
它代表了任何可以被拋出的例外,或者是錯誤,
如圖所示:
下圖的Error和Exception都代表的是系統的錯誤,但又有著根本的不同,

| Exception | Error |
|---|---|
| 可以是可被控制或不可控制的 | 總是不可控制的 |
| 表示一個由程式員導致的錯誤 | 經常用來用于表示系統錯誤或底層資源的錯誤 |
| 應該在應用程式級被處理 | 如果可能的話,應該在系統級被捕捉 |
Error:
Java中的定義不可控制,無法預期的錯誤出現,
比如說在系統中出現了記憶體溢位,系統崩潰,虛擬機錯誤,方法呼叫堆疊溢位等等,
這里的錯誤通常都會導致程式的中斷,同時僅僅靠程式本身它是無法恢復和預防的,
也就是說Error這個級別,是在我們應用程式之上,通常是作業系統級別的,所以對于Error來說,通常的做法就是中斷程式的運行,
Exception:
例外
所謂例外通常是指可以被我們捕捉到的這部分錯誤, 例如:除法中出現了分母為0,我們就可以用try/catch進行捕捉和處理,
同時對于例外來說,它通常都是可以被恢復的(也就是說對于程式是可控的)如果出現了例外我們可以對它進行補救,
這便是例外和錯誤之間的區別
Exception和RuntimeException:
針對于剛才的Java例外體系來說,Exception和Error都實作了Throwable介面,
但是對于例外之后還有很多的類對它進行繼承其中最典型的叫做RuntimeException
Exception和RuntimeException之間的關系是:
對于Exception來說,我所有的類必須要進行強制處理,比如說try/catch或者說Throw拋出去,
而RuntimeException則代表了我們應用程式運行程序中所產生的例外,對于我們進行程式編碼時,RuntimeException及它的其子類并不需要顯示的通過try/catch強制處理,
Exception和RuntimeException區別:
也就是說這兩者他們最大的區別在于Exception是所有例外的統稱,而RuntimeException他則代表了只有在運行時產生的例外,
對于運行時產生的例外我們在程式編碼的階段是不要求對其進行強制try/catch處理或者throw拋出的這便是兩者最大的區別,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/240090.html
標籤:其他
上一篇:數通:eNSP下靜態路由測驗
