![Java程序設計項目式教程 課件 5-2 利用異常處理解決程序運行異常_第1頁](http://file4.renrendoc.com/view11/M03/02/3E/wKhkGWWdPqiAY2PbAAEvomrdV6Q207.jpg)
![Java程序設計項目式教程 課件 5-2 利用異常處理解決程序運行異常_第2頁](http://file4.renrendoc.com/view11/M03/02/3E/wKhkGWWdPqiAY2PbAAEvomrdV6Q2072.jpg)
![Java程序設計項目式教程 課件 5-2 利用異常處理解決程序運行異常_第3頁](http://file4.renrendoc.com/view11/M03/02/3E/wKhkGWWdPqiAY2PbAAEvomrdV6Q2073.jpg)
![Java程序設計項目式教程 課件 5-2 利用異常處理解決程序運行異常_第4頁](http://file4.renrendoc.com/view11/M03/02/3E/wKhkGWWdPqiAY2PbAAEvomrdV6Q2074.jpg)
![Java程序設計項目式教程 課件 5-2 利用異常處理解決程序運行異常_第5頁](http://file4.renrendoc.com/view11/M03/02/3E/wKhkGWWdPqiAY2PbAAEvomrdV6Q2075.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
§5-2異常處理Java語言程序設計教學目標任務分析前面我們在錄入學生信息時發(fā)現(xiàn),用戶如果不能錄入正常信息會導致程序崩潰,我們無法保證用戶每次都能按正確格式錄入,但我們可以通過對用戶可能會出現(xiàn)的問題提前進行處理,以保證程序不崩潰。教學內(nèi)容1聲明異常捕獲異常2throw拋出異常3一、捕獲異常捕獲異常的try-catch-finally語句的其語法格式為:try{//可能會引發(fā)異常的代碼}catch(ExceptionType1e){//對ExceptionType1的處理}catch(ExceptionType2e){//對ExceptionType2的處理}......finally{//該結構并非必須,但如果有,則否發(fā)生了異常,finally語句都會執(zhí)行......//}捕獲異常的第一步是用try{…}選定捕獲異常的范圍,由try所限定的代碼塊中的語句在執(zhí)行過程中可能會生成異常對象并拋棄。一、捕獲異常1.try每個try代碼塊可以伴隨一個或多個catch語句,用于處理try代碼塊中所生成的異常事件。catch語句只需要一個形式參數(shù)來指明它所能夠捕獲的異常類型,這個類必須是Throwable的子類,運行時系統(tǒng)通過參數(shù)值把被拋棄的異常對象傳遞給catch塊。①如果try中代碼沒有出現(xiàn)異常,則不會進入catch塊。②如果出現(xiàn)異常對象,則會依次與catch塊中的異常類型進行驗證,是否是屬于該類型的異常,如果是,則進入該catch塊,后續(xù)catch塊不再繼續(xù)驗證,即不會再執(zhí)行后續(xù)catch塊。如何出現(xiàn)的異常對象不屬于所有catch塊中的異常,則無法捕獲該異常,該異常依然會導致程序崩潰,所以為防止此種情況可以在最后的catch塊設置捕獲的異常類型為Exception類型。一、捕獲異常2.catch捕獲異常的最后一步是通過finally語句為異常處理提供一個統(tǒng)一的出口,使得在控制流轉(zhuǎn)到程序的其它部分以前,能夠?qū)Τ绦虻臓顟B(tài)做統(tǒng)一的管理。一般是用來關閉文件或釋放其他的系統(tǒng)資源。雖然finally作為try-catch-finally結構的一部分,但在程序中是可選的,也就是說可以沒有finally語句。如果存在finally語句,不論try塊中是否發(fā)生了異常,是否執(zhí)行過catch語句,都要執(zhí)行finally語句。一、捕獲異常3.finally示例代碼當數(shù)組下標超界時,捕獲異常publicstaticvoidmain(Stringargs[]){ Stringstr[]={"北京","山東","上海"}; inti=0; while(i<4){ try{ System.out.println(str[i]); }catch(ArrayIndexOutOfBoundsExceptione){ System.out.println("數(shù)組下標越界"); }finally{ System.out.println("這行信息總是會打印,無論是否出現(xiàn)異常"); } i++; }}二、聲明異常
當Java程序運行時系統(tǒng)得到一個異常對象時,如果一個方法并不知道如何處理所出現(xiàn)的異常,則可在方法聲明時,聲明拋棄(throws)異常。如果方法中有可能拋出多個異常,異常列表中要一一列出,各異常之間用逗號隔開。語法如下:修飾符返回類型方法名(參數(shù)列表)throws異常列表{方法體;}如:publicvoidmyMethod()throwsIOException{……}說明:通過使用throws聲明異常的方法,該方法自己不處理本方法中產(chǎn)生的異常,而是由調(diào)用它的方法來處理這些異常。三、throw拋出異常
除程序編譯或運行階段系統(tǒng)自動拋出異常外,用戶還可以根據(jù)實際需求手動通過throw關鍵字拋出異常。其一般格式為:thrownewXxxException();或
XxxException()ex=newXxxException();throwex;
如果手動拋出的為非運行時異常,則throw所在方法必須是通過throws關鍵字聲明了異常的方法,或使用try-catch對該非運行時異常進行處理。四、自定義異常
盡管Java提供了相當多的異常類,但Exception提供的系統(tǒng)異常并不一定總能捕獲程序中發(fā)生的所有錯誤。當用戶遇到了系統(tǒng)預定義的異常類不能描述的問題時,還需要創(chuàng)建用戶自定義的異常,比如在銀行系統(tǒng)中存錢的數(shù)據(jù)如果小于0即為一種異常現(xiàn)象。
用戶定義的異常必須繼承自Throwable、Exception類或Exception的其他子類。語法:publicclass類名extends異常類名{//類體}
自定義的異常必須由用戶自己拋出throw,格式為:thrownew自定義異常類名()示例代碼自定義存款異常類BalanceException繼承繼承自
ExceptionpublicclassBalanceExceptionextendsException{ publicBalanceException(){} publicBalanceException(Stringmessage){//帶參構造方法,指定異常消息 super(message); }
}示例代碼//定義銀行類Bank,該類具有存款方法publicclassBank{ //存款方法,判斷存款金額如果為負數(shù),則聲明拋出BalanceException publicstaticvoiddeposit(intbalance)throwsBalanceException{ if(balance<0){ //創(chuàng)建自定義異常對象 BalanceExceptionbalanceException=newBalanceException("存款不能為負數(shù)"); //拋出異常
throwbalanceException; }else{ System.out.println("存款成功"); } }示例代碼
//在main方法調(diào)用存款方法 publicstaticvoidmain(String[]args){ intbalance; Scannersc=newScanner(System.in); System.out.println("請輸入存款金額:"); balance=sc.nextInt(); //使用try-catch處理BalanceException try{ deposit(balance); }catch(Exceptione){ e.printStackTrace(); } }}
測試輸入金額為正數(shù)和負數(shù)shi任務實施使用try-catch-finally解決因用戶不合理理錄入錯誤而引起的程序崩潰,從而提高程序運行的可靠性,實現(xiàn)步驟如下。1)將可能出現(xiàn)異常的代碼(即輸入學生年齡部分)放入try代碼塊。2)使用catch代碼塊捕獲Exception。程序開發(fā)階段可以在catch塊中將異常信息通過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)農(nóng)業(yè)與生態(tài)教育普及的相互促進
- 環(huán)境科學中微生物生態(tài)學的實踐意義
- 2025年度智能制造生產(chǎn)線操作工勞動合同范本
- 2025年度國際貿(mào)易經(jīng)濟合同簽訂與貿(mào)易摩擦應對策略
- 愛勞動的孩子更自信心理分析
- 現(xiàn)代醫(yī)療設施中的氧氣管道系統(tǒng)設計
- 2025年度股權代持與公司員工激勵合同范本
- 【培優(yōu)卷】同步分層練習:五年級下冊語文第10課《青山處處埋忠骨》(含答案)
- 人教版數(shù)學九年級上冊22.2.4《一元二次方程根與系數(shù)關系》聽評課記錄
- 2025年度家庭裝修室內(nèi)裝飾材料采購合同
- 寫給所有人的數(shù)學思維課
- 黑龍江省哈爾濱重點中學2023-2024學年高二上學期期中考試語文試題(含答案)
- 讀書分享讀書交流會《給教師的建議》課件
- 工程量清單及招標控制價編制、審核入庫類服務方案
- 語文教師公開課評價表
- toc測定儀的原理及使用(ppt頁)
- 對違反政治紀律行為的處分心得體會
- 大學生職業(yè)生涯發(fā)展與規(guī)劃(第二版)PPT完整全套教學課件
- 領導干部的情緒管理教學課件
- 初中英語-Unit2 My dream job(writing)教學課件設計
- 供貨方案及時間計劃安排
評論
0/150
提交評論