什么是異常?為什么要進(jìn)行異常處理?
解:Java把在程序執(zhí)行期間遇到的意外事件稱為錯(cuò)誤,并將錯(cuò)誤分為兩類。一類是非致命性的,通過某種修改后程序還能繼續(xù)執(zhí)行,這類錯(cuò)誤稱做異常。另外一類是致命性的,即程序遭到了非常嚴(yán)重的不正常狀態(tài),不能簡單地恢復(fù)執(zhí)行,這類錯(cuò)誤稱做錯(cuò)誤或致命性錯(cuò)誤。錯(cuò)誤處理一般由系統(tǒng)承擔(dān)。
當(dāng)異常發(fā)生時(shí)異常處理能夠提供相應(yīng)的處理方法代碼使程序繼續(xù)執(zhí)行。Java專門設(shè)計(jì)了相應(yīng)的異常處理機(jī)制。
如何創(chuàng)建一個(gè)自定義異常?
解:自定義異常類型是從Exception類中派生的,所以要使用下面的生命語句來創(chuàng)建:
如何拋出自定義異常?
解:可使用以下3種方法拋出自定義異常。
(1) 使用try-catch-finally語句,在try子句中使用throw new拋出異常并捕獲異常,在catch或finally子句中給出異常處理的代碼,使程序繼續(xù)執(zhí)行。
(2) 使用throws語句在聲明方法的同時(shí)聲明拋出異常的類型,當(dāng)異常發(fā)生時(shí)交由系統(tǒng)處理。
(3) 使用throw new語句直接拋出異常。
下面的程序有何錯(cuò)誤?
public class Quiz1{
public static viod main(String args[]){myMathod();}
myMathod() {throw new MyException();}
}
class MyException{
public String toString() {return“自定義異!保粆
}
解:MyException不是一個(gè)異常類,所以在myMathod方法中不能使用throw new語句拋出。
下面的程序輸出是什么?說出理由。(C)
public class Q1{
public static void main(String args[]){
try {throw new MyException();}
catch(Exception e){
System.out.println(“It’s caught!”);
}
finally{
System.out.println(“It’s finally caught!”);}
}
class MyException extends Exception{}
A.It’s finally caught! B.It’s caught!
C.It’s caught! D. 無輸出
It’s finally caught!
解:因?yàn)閠ry子句中捕獲并拋出一個(gè)自定義異常MyException,則執(zhí)行從該處中斷而進(jìn)入catch塊,根據(jù)異常的類型進(jìn)行匹配,只要該異常是catch中指定的異常的子類就匹配成功進(jìn)而執(zhí)行相應(yīng)的catch中的內(nèi)容,而finally塊中的內(nèi)容無論是否發(fā)生異常都將被執(zhí)行。所以程序輸出應(yīng)該是選項(xiàng)C。
2015職稱計(jì)算機(jī)考試書PowerPoint2007中 .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 | |
2015年全國職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |