6.1概述
考點(diǎn):1
概述
Java為異常定義了類和關(guān)鍵字,把異常加入了Java語言的結(jié)構(gòu)體系,從而簡化了錯(cuò)誤控制代碼。異常處理將錯(cuò)誤處理的控制流從正常進(jìn)行的控制流中分離開,使我們再也不用檢查一個(gè)特定的錯(cuò)誤,并在程序的多處地方對(duì)其進(jìn)行控制。此外,也不需要在方法調(diào)用的時(shí)候檢查錯(cuò)誤,而只需要在異??刂颇K中處理錯(cuò)誤。
6.2異常類型
考點(diǎn):2
異常類型(捕獲異常、聲明異常、拋出異常)
異常類在Java語言中是一種較特殊的類,按照異常處理的不同可以分為捕獲異常、聲明異常、拋出異常和運(yùn)行異常。
1.捕獲異常
若某個(gè)方法產(chǎn)生一個(gè)異常,則必須保證該異常能被捕獲,并獲得正確處理。對(duì)于Java的異??刂茩C(jī)制,通過在try子句中處理需要解決的問題,然后在catch子句中對(duì)來自try子句代碼內(nèi)部的錯(cuò)誤進(jìn)行處理,最后通過finally子句釋放資源,實(shí)現(xiàn)異常處理的出口。語法如下:
try{
// 可能產(chǎn)生異常的代碼
}catch(Typel id1){
// 處理Type1異常的代碼
}catch(Type2 id2)}
// 處理Type2異常的代碼
}finally{
// 最后異常處理的代碼
}
2.聲明異常
Java方法遇到自己不能解決的情況,就會(huì)聲明異常。聲明異常的方法在方法聲明中必須描述潛在的異常類型,它屬于方法聲明的一部分,位于自變量(參數(shù))列表的后面。語法如下:
throws exception),exception2,…// 異常列表
3.拋出異常
在捕獲一個(gè)異常之前,必須先有異常拋出。通過使用拋出異常來生成一個(gè)異常對(duì)象。要求能拋出的異常必須是Throwable類或其子類的實(shí)例,并且拋出異常和生成異常對(duì)象都是通過throw語句實(shí)現(xiàn):
catch(Exception e){
System.out.println(“一個(gè)異常已經(jīng)產(chǎn)生”);
throw e;
}
6.3處理異常
考點(diǎn):3
處理異常
處理異常主要包括捕獲、程序流程的跳轉(zhuǎn)和異常處理語句塊的定義。處理異常的時(shí)候還需要注意try和catch子句的匹配、父類和子類異常匹配,以及catch子句的排序等問題。
1.try和catch子句
由try引導(dǎo)產(chǎn)生異常的“警戒區(qū)”,后面跟的是catch子句,try內(nèi)部不同的方法調(diào)用可能產(chǎn)生相同的異常,對(duì)于同一個(gè)異常只需要一個(gè)catch子句。
2.finally子句
finally子句作為捕獲異常的統(tǒng)一出口,實(shí)現(xiàn)了釋放資源、關(guān)閉文件等工作,從而保證了控制流在轉(zhuǎn)到其他路徑之前,程序的狀態(tài)被統(tǒng)一管理。
3.異常處理的原則
對(duì)異常事件分類,通過異常層次實(shí)現(xiàn)控制;異常處理代碼和正常代碼分開;使用finally作為統(tǒng)一出口;能簡單測試就盡量不使用異常控制;自定義異常類時(shí),使用Throwable類及其子類,一般定義為非運(yùn)行時(shí)的異常,除非在運(yùn)行時(shí)產(chǎn)生或者不易預(yù)測。
考點(diǎn):1
概述
Java為異常定義了類和關(guān)鍵字,把異常加入了Java語言的結(jié)構(gòu)體系,從而簡化了錯(cuò)誤控制代碼。異常處理將錯(cuò)誤處理的控制流從正常進(jìn)行的控制流中分離開,使我們再也不用檢查一個(gè)特定的錯(cuò)誤,并在程序的多處地方對(duì)其進(jìn)行控制。此外,也不需要在方法調(diào)用的時(shí)候檢查錯(cuò)誤,而只需要在異??刂颇K中處理錯(cuò)誤。
6.2異常類型
考點(diǎn):2
異常類型(捕獲異常、聲明異常、拋出異常)
異常類在Java語言中是一種較特殊的類,按照異常處理的不同可以分為捕獲異常、聲明異常、拋出異常和運(yùn)行異常。
1.捕獲異常
若某個(gè)方法產(chǎn)生一個(gè)異常,則必須保證該異常能被捕獲,并獲得正確處理。對(duì)于Java的異??刂茩C(jī)制,通過在try子句中處理需要解決的問題,然后在catch子句中對(duì)來自try子句代碼內(nèi)部的錯(cuò)誤進(jìn)行處理,最后通過finally子句釋放資源,實(shí)現(xiàn)異常處理的出口。語法如下:
try{
// 可能產(chǎn)生異常的代碼
}catch(Typel id1){
// 處理Type1異常的代碼
}catch(Type2 id2)}
// 處理Type2異常的代碼
}finally{
// 最后異常處理的代碼
}
2.聲明異常
Java方法遇到自己不能解決的情況,就會(huì)聲明異常。聲明異常的方法在方法聲明中必須描述潛在的異常類型,它屬于方法聲明的一部分,位于自變量(參數(shù))列表的后面。語法如下:
throws exception),exception2,…// 異常列表
3.拋出異常
在捕獲一個(gè)異常之前,必須先有異常拋出。通過使用拋出異常來生成一個(gè)異常對(duì)象。要求能拋出的異常必須是Throwable類或其子類的實(shí)例,并且拋出異常和生成異常對(duì)象都是通過throw語句實(shí)現(xiàn):
catch(Exception e){
System.out.println(“一個(gè)異常已經(jīng)產(chǎn)生”);
throw e;
}
6.3處理異常
考點(diǎn):3
處理異常
處理異常主要包括捕獲、程序流程的跳轉(zhuǎn)和異常處理語句塊的定義。處理異常的時(shí)候還需要注意try和catch子句的匹配、父類和子類異常匹配,以及catch子句的排序等問題。
1.try和catch子句
由try引導(dǎo)產(chǎn)生異常的“警戒區(qū)”,后面跟的是catch子句,try內(nèi)部不同的方法調(diào)用可能產(chǎn)生相同的異常,對(duì)于同一個(gè)異常只需要一個(gè)catch子句。
2.finally子句
finally子句作為捕獲異常的統(tǒng)一出口,實(shí)現(xiàn)了釋放資源、關(guān)閉文件等工作,從而保證了控制流在轉(zhuǎn)到其他路徑之前,程序的狀態(tài)被統(tǒng)一管理。
3.異常處理的原則
對(duì)異常事件分類,通過異常層次實(shí)現(xiàn)控制;異常處理代碼和正常代碼分開;使用finally作為統(tǒng)一出口;能簡單測試就盡量不使用異常控制;自定義異常類時(shí),使用Throwable類及其子類,一般定義為非運(yùn)行時(shí)的異常,除非在運(yùn)行時(shí)產(chǎn)生或者不易預(yù)測。