目錄
一、問題引入
C語言中,對于數據正確性檢查和數據異常的處理通常是這樣的:
利用 if 判斷和 scanf 的返回值,完成對數據的正確性檢查和數據格式輸入錯誤的問題。那么java的異常處理是否是這樣的呢?
很顯然 java 有著自己獨特的異常處理機制。
二、異常處理
首先,作為一門面向對象編程語言,構成java程序的基礎是類。Java 對異常事件
進行了分類,下圖是Java異常層次結構的示意圖:
可以看出所有異常類都是繼承 類而來的,但往下又分為兩種:Error類和。
Error:
Java虛擬機無法解決的嚴重問題。 如: JVM系統內部錯誤、 資源耗盡等嚴重情況。一般我們不考慮編寫代碼進行處理。
:
其它因編程錯誤或偶然的外在因素導致的一般性問題, 可以使用針對性的代碼進行處理。其中又分為兩類,一類是 ,另一類是。由程序錯誤導致的異常屬于異常類,由外部因素如像文件讀寫等I/O 異常屬于異常。
此外,我們還可以自定義異常類,去詳細的描述異常信息。
異常處理機制
對異常事件分了類,那么下一步就是對異常事件的處理和響應機制。
機制一:try-catch-
格式如下:
try代碼塊里面是可能會出現異常的代碼,catch代碼塊里面是對異常進行處理的代碼,是無論都會執行的代碼。需要注意的是,try 里面拋出了異常會立馬執行catch里面的代碼,執行完catch的代碼后不會繼續運行try里面的代碼,以及catch代碼塊可以有多個。我們看一個例子:
當 讀取了一個不符合數據格式的數據時會拋出 on異常,然后執行catch代碼塊里面的代碼
機制二: + 異常類型
+異常類型,寫在方法的聲明處,此時此方法執行時n一個ai文件一打開就有問題終止, 可能會拋出的類型,對于數據正確性的檢查我們可以使用該機制。需要注意的是 :的方式只是將異常拋給了方法的調用者,并沒有真正將異常處理掉。所以在調用該方法的地方還是需要try - catch處理。結合自定義異常類,我們看一個例子
當輸入的學號為負時,會拋出一個自定義異常n一個ai文件一打開就有問題終止,catch代碼塊會提示用戶輸入正確的數據范圍。
三、總結
java 對異常進行了分類,我們更需要考慮對類進行編程處理,處理異常的機制 為 try - catch - 機制。相對于類c編程語言的異常處理,我感覺java 的異常處理顯然更加的優雅,能夠減少代碼的冗余。
整理時間:2022-06-01