手动抛出异常_异常
1. 異常的概念
異常(Exception) 即例外,程序沒有按自己預想的結果運行出來,出現了非正常情 況,即“程序得病了”
2. 異常的分類
Exception:所有異常的父類,其子類對應了各種各樣可能出現的異常事件,一般需 要用戶顯示地聲明或捕獲。
2.1. Runtime Exception
Runtime Exception類是 Exception 類的子類,叫做運行時異常,Java 中的所有運行 時異常都會直接或者間接地繼承自 RuntimeException 類。
2.2. CheckedException(需要處理的)
Java 中凡是繼承自 Exception,而不繼承自 RuntimeException 類的異常都是非運行 時異常,也叫檢查時異常。 如:IOException。 必須要對其進行處理,否則無法通過 編譯。這類異常的產生不是程序本身的問題,通常由外界因素造成的。 為了預防這 些異常產生時,造成程序的中斷或得到不正確的結果,Java 要求編寫可能產生這類 異常的程序代碼時,一定要去做異常的處理。
異常處理
3.1. 異常產生
出現異常,是因為內部拋出了異常對象,這個異常對象的產生分為系統內部 產生,或程序員手動拋出異常。
3.2異常處理
對于編譯(非運行)時異常( checked exception ),必須要對其進行處理,否則無 法通過編譯。處理方式有兩種:
- 異常捕獲
- 異常拋出
3.2.1. 異常捕獲try catch finally
try語句
try{…} 語句制定了一段代碼,該段代碼就是一次捕獲并處理意外的范圍。
在執行過程中,該段代碼可能會產生并拋出一種或幾種類型的異常對象,它后面 的 catch 語句要分別對這些異常做相應的處理。
如果沒有意外產生,所有的catch代碼段都被略過不執行。
catch語句
在catch語句塊中是對異常進行處理的代碼,每個try語句塊可以伴隨一個或多個 catch語句,用于處理可能產生的不同類型的異常對象。
在catch中聲明的異常對象封裝了異常事件發生的信息,在catch語句塊中可以使用 這個對象的一些方法獲取這些信息。
finally語句
finally語句為異常處理提供一個統一的出口,使得在控制流程轉到程序的其它部分 以前,能夠對程序的狀態作統一的管理。無論try所制定的程序塊中是否拋出異常, finally所指定的代碼都要被執行。
通常在finally語句中可以進行資源的清除工作,如:關閉打開的文件、刪除臨時文 件
3.2.2. 向外 聲明( 拋出) 異常 throws
在產生異常的方法聲明后面寫上 throws 某一個 Exception 類型,如 throws IOException ,將異常拋出到外面一層去。
異常與重寫聲明
子類聲明的異常范圍不能超出父類的異常范圍
4. 使用自定義的異常
使用自定義異常一般有如下步驟:
- 1. 通過繼承java.lang.Exception類聲明自己的異常類
- 2. 在方法適當的位置生成自定義異常的實例,并用throw語句拋出
- 3. 在方法聲明部分用throws語句聲明該方法可能拋出的異常
總結
- 上一篇: js验证开始日期不能大于结束日期_Exc
- 下一篇: goland设置goroot_go环境搭