Error與Exception有什么區別?
Error和Exception的聯系
繼承結構:Error和Exception都是繼承于Throwable,RuntimeException繼承自Exception。Error和RuntimeException及其子類稱為未檢查異常(Unchecked exception),其它異常成為受檢查異常(Checked Exception)。Error和Exception的區別
Error類一般是指與虛擬機相關的問題,如系統崩潰,虛擬機錯誤,內存空間不足,方法調用棧溢出等。如Java.lang.StackOverFlowError和Java.lang.OutOfMemoryError。對于這類錯誤,Java編譯器不去檢查他們。對于這類錯誤的導致的應用程序中斷,僅靠程序本身無法恢復和預防,遇到這樣的錯誤,建議讓程序終止。Exception類表示程序可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程序恢復運行,而不應該隨意終止異常。運行時異常和受檢查的異常
Exception又分為運行時異常(Runtime Exception)和受檢查的異常(Checked Exception )。
RuntimeException:其特點是Java編譯器不去檢查它,也就是說,當程序中可能出現這類異常時,即使沒有用try……catch捕獲,也沒有用throws拋出,還是會編譯通過,如除數為零的ArithmeticException、錯誤的類型轉換、數組越界訪問和試圖訪問空指針等。處理RuntimeException的原則是:如果出現RuntimeException,那么一定是程序員的錯誤。受檢查的異常(IOException等):這類異常如果沒有try……catch也沒有throws拋出,編譯是通不過的。這類異常一般是外部錯誤,例如文件找不到、試圖從文件尾后讀取數據等,這并不是程序本身的錯誤,而是在應用環境中出現的外部錯誤。-----------------------
原提問者提出為話題由PHP,我估計PHP的設計也是同理吧,不太了解了。。
上一篇初學者如何學習PHP框架
下一篇微信小程序系統編程難嗎