- 異常的概念_分類
1.1異常的概念
異常( Exception 也稱例外)就是在程序的運行過程中所發生的不正常的事件,它會中斷正在運行的程序
- 所需文件找不到
- 網絡連接不通或中斷
- 算術運算錯 (被零除…)
- 數組下標越界
- 裝載一個不存在的類或者對null對象操作
- 類型轉換異常
- ……
當Java程序出現以上的異常時,就會在所處的方法中產生一個異常對象。這個異常對象包括異常的類型,異常出現時程序的運行狀態以及對該異常的詳細描述。
1.2異常的分類
2.異常處理的方式一_捕獲異常
2.1捕獲異常所使用的關鍵字try、catch、finally
2.2try-catch-finally的使用
- try-catch組合
- 正常情況
- 異常情況,異常出現的類型與捕獲的類型匹配
- 異常情況,異常出現的類型與捕獲的類型不匹配
- try-finally組合
finally是無論是否產生異常,都執行的代碼,但是有一種情況finally不執行,即退出Java虛擬機。
- try-catch-finally組合
- 正常情況:執行try-finally
- 異常情況:類型相匹配,執行try-catch-finally
- 異常情況:類型不相匹配,執行try-finally
如果在catch中存在return語句,則先執行完finally語句再回頭執行return語句
3.異常處理方式二_聲明異常
3.1聲明異常的關鍵字throws
方法名的后面,用於聲明該方法可能會產生一個異常
如果方法聲明的是Exception類型的異常或者是Checked Exception異常,要求方法的調用處必須做處理。
(1)繼續使用throws向上(方法的調用處)聲明
(2)使用try-catch-finally進行處理
如果聲明的是RuntimeException類型的異常,那么方法的調用處可處理可不處理。
3.2繼承關系中的聲明異常
- 父類的方法聲明了Exception類型的異常,子類在重寫方法時,可以聲明也可以不聲明。但是如果子類重寫后的方法使用super關鍵字調用父類的方法,那么要求必須對異常進行處理。
- 如果父類的方法沒有異常,那么子類的方法如果一定會有Exception或Checked異常,要求子類必須自己使用try-catch處理,或者給父類方法加上異常的聲明
- 如果子類在重寫父類的方法時,產生的異常是RuntimeException異常時,那么可以不用處理
3.3throw拋出異常對象
寫在方法里
在捕獲一個異常前,必須有一段代碼先生成異常對象並把它拋出。這個過程我們以手工做,也可以由JRE來實現,但是他們調用的都是throw子句。
throws與throw
- throws用於聲明方法可能會產生的異常類型
throw手動拋出異常對象
- throws寫在方法名稱后面
throw用於寫在方法里