Java中的異常處理機制的簡單原理和應用

異常是指java程序運行時(非編譯)所發生的非正常情況或錯誤,與現實生活中的事件很相似。

現實生活中的事件可以包含事件發生的時間、地點、人物、情節等信息,可以用一個對象來表示;Java使用面向對象的方式來處理異常,它把程序中發生的每個異常也都分別封裝到一個對象來表示的,該對象中包含有異常的信息。

Java對異常進行了分類,不同類型的異常分別用不同的Java類表示,所有異常的根類爲java.lang.Throwable,Throwable,下面又派生了兩個子類:Error和Exception,Error 表示應用程序本身無法克服和恢復的一種嚴重問題,程序只有死的份了。

例如,說內存溢出和線程死鎖等系統問題。

Exception表示程序還能夠克服和恢復的問題,其中又分爲系統異常和普通異常,系統異常是軟件本身缺陷所導致的問題,也就是軟件開發人員考慮不周所導致的問題,軟件使用者無法克服和恢復這種問題,但在這種問題下還可以讓軟件系統繼續運行或者讓軟件死掉。

例如,數組腳本越界(ArrayIndexOutOfBoundsException),空指針異常(NullPointerException)、類轉換異常(ClassCastException)。

普通異常是運行環境的變化或異常所導致的問題,是用戶能夠克服的問題。例如,網絡斷線,硬盤空間不夠,發生這樣的異常後,程序不應該死掉。

java 爲系統異常和普通異常提供了不同的解決方案,編譯器強制普通異常必須 try..catch 處理或用 throws 聲明繼續拋給上層調用方法處理,所以普通異常也稱爲checked異常,而系統異常可以處理也可以不處理,所以,編譯器不強制用try..catch處理或用throws聲明,所以系統異常也稱爲unchecked異常。

相關文章