java異常處理預習
一、什么是異常處理
在程序運行過程中發生的、會打斷程序正常執行的事件稱為異常(Exception),也稱為例外。比如:除零溢出、數組越界、內存溢出等,這些事件的發生將阻止程序的正常運行。傳統的編程語言沒有異常處理機制,處理錯誤完全依靠程序編寫者自己查找,通常是遇到錯誤返回一個特殊的值或者設定一個標志,并以此判斷是否有錯誤產生,這就給程序維護帶來了很大的障礙。而Java利用面向對象的方法,把異常處理固化到語言中,并把各種不同的異常分類,同時提供了良好的接口,由于Java語言中的異常處理和Java運行時的系統相關,所以它消耗內存和處理器來處理創建、拋出、捕獲、處理異常等事件,如果不能合理使用就會適得其反,降低了軟件的可讀性和執行效率。
二、 異常處理方法
Java語言提供了3種處理異常的方法:一種方法是使用try-catch-finally 語句實現異常處理;另一種方法是使用throw語句在方法頭或者方法體內拋出異常,異常處理代碼捕獲這些異常。Java語言還為用戶提供了定義自己異常類的方法,來滿足用戶處理實際問題的需要。
在使用try-catch-finally語句實現異常處理時,由于一個try子句可能產生多種不同的異常,這就需要多個catch子句來實現多異常處理機制,每一個catch子句接收和處理一個異常句柄,而針對多個catch子句,處理的原則是:
1)在多catch子句中,處理的順序是由距離產生異常最近的、可匹配的catch代碼段來處理。所謂的匹配是指catch所處理的異常類型與所生成的生成類型完全一致或是它的父類。
2)如果沒有相應的異常處理,說明當前方法不能處理該異常,程序流程將會交給上層方法的try代碼段進行處理,如果均不符合,則由Java虛擬機捕獲并處理該異常。
3)異常處理的查找依據類型(異常與參數屬于相同的異常類、異常屬于參數異常的子類)匹配原則按順序進行。在使用throw語句拋出異常時,對于含有throw語句的方法,應該在方法頭定義中增加語句: throws異常類名列表,這樣做的目的,主要是提醒調用該方法的其他方法,要處理和接受該方法在運行過程中可能拋出的異常。
Java 語言也提供了用戶自定義異常類的方法來滿足處理方面的需求,而所有用戶自定義的異常類都必須是Throwable類或Exception類的子類。
程序運行中有錯誤是可以預料的,但卻是不可避免的。當程序出現錯誤時,要力爭允許用戶排除環境錯誤,繼續運行程序,這就是異常處理的任務和準則。Java語言提供了異常處理的內部支持,需要廣大用戶通過日常的反復操作來體會其更深層次的內容。
浙公網安備 33010602011771號