




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
異常機制處理異常類的簡介異常的捕獲與處理
throws和throw的使用定義自己的異常類異常類ExceptionNumberFormatExceptionNullPointerExceptionIOExceptionClassFoundExceptionArithmeticExceptionArrayIndexOutOfBoundsException用try-catch-finally
語句捕獲和處理異常
try{語句體}catch(異常錯誤類型1變量名
){語句體}catch(異常錯誤類型2變量名
){語句體}
finally{語句體}
基本格式為:異常處理常用方法getMessage()該方法返回一個字符串,描述與異常相關(guān)的錯誤信息printStackTrace()用于打印顯示異常拋出時的堆棧跟蹤狀態(tài),并將其輸?shù)綐藴叔e誤流中toString()返回一個字符串對該異常對象進行簡短的描述throws和throw的使用
throws用于通告方法中可能出現(xiàn)的異常
throw用于顯示觸發(fā)異常。通告一個方法可能產(chǎn)生的異常:在方法聲明時通過關(guān)鍵字throws來通告,如有多個異常,用逗號隔開。[<修飾符>]<返回值類型><方法名>([<參數(shù)列表>])[throws<異常類1>,<異常類2>……]例如:PublicStringread()throwsIOException;觸發(fā)異常格式:
throw<異常對象>其中,throw是關(guān)鍵字,<異常對象>是創(chuàng)建的異常類對象。例如:thrownewIOException();相當于:IOExceptione=newIOException();throwe;
格式:Exception5.java
例題:Exception6.javaimportjava.io.IOException;publicclassclassname{staticintread()throwsIOException//成員方法定義 { //其它代碼
thrownewIOException("Exceptiondemo"); //觸發(fā)異常
} publicstaticvoidmain(String
args[]) {try //捕獲異常
{ //其它代碼
read(); }
catch(IOExceptione) //異常處理
{ System.out.println(e);}}}練習題定義一個Example類,類中定義一個成員方法sum(),計算輸入數(shù)據(jù)的連加,當輸入的數(shù)據(jù)小于5時,拋出“輸入數(shù)據(jù)太小”的異常,否則輸出方法結(jié)果。publicclassExample{publicvoidok(intk)throwsException{intsum=0;
if(k<1)thrownewException("輸入數(shù)據(jù)太??!");elseSystem.out.println(k+"輸入成功哦!");
for(inti=1;i<=k;i++){sum=sum+i;}
System.out.println(sum);}publicstaticvoidmain(String
args[]){Examplea=newExample();try{
a.ok(m);}
catch(Exceptione) {System.out.println("Exception:"+e.getMessage());}}}定義自己的異常類創(chuàng)建自定義異常的基本步驟:1.定義一個新的異常類,其必須繼承Exception類、Exception類的子類或用戶自定義的其他異常類。定義的格式:
class自定義異常類名extends父異常類名
{語句體}2.為新的異常類定義屬性和方法,或重載父類的屬性和方法,使之能夠體現(xiàn)出程序中出現(xiàn)這種異常的信息?;靖袷剑?/p>
publicclassNumberExceptionextendsException{publicNumberException(){super();}publicNumberException(Strings){super(s);}}3.拋出用戶自定義的異常。用戶自定義異常不可能依靠系統(tǒng)自動拋出,而必須通過throw語句拋出異常,通常是通過條件判斷確定是否拋出這個異常類的新對象。拋出用戶自定義異常的格式:返回類型方法名(參數(shù)1,參數(shù)2,……)
throw自定義異常類{if(條件判斷)throw(new自定義異常類名(this));……}例題自定義異常類應用于求兩個1000以內(nèi)正整數(shù)和的程序中。通過鍵盤輸入兩個數(shù)字,如果兩個都在1000以內(nèi)的正整數(shù),則計算它們的和,否則顯示錯誤信息。importjava.io.*;publicclassException7{publicstaticvoidmain(String
args[]){try{
System.out.println("兩個數(shù)的和為:"+sum(num1,num2)); }catch(NumberRangExceptione){
System.out.println(e.getMessage()); }catch(NumberFormatExceptione){
System.out.println("輸入格式不對,請輸入數(shù)字!");}
catch(IOExceptione){} } publicstaticint
sum(intnum1,intnum2)throwsNumberRangException{ if((num1<0)||(num1>1000)||(num2<0)||(num2>1000)){
throw(new
NumberRangException("鍵入的數(shù)字必須在0到1000之內(nèi)!"));} returnnum1+num2;}}class NumberRangExceptionextendsException{ publicNumberRangException(){super();} publicNumberRangException(Strings){
super(s);}}作業(yè)設(shè)計異常類:假如某項工作對身高要求較嚴,需要在170cm到180cm之間,如過超出范圍都會產(chǎn)生太高太矮的異常。classTooShortExceptionextendsException{
TooShortException(intheight) {super("height:"+height+"youaretooshorttodothisjob");}
TooShortException(){
super("tooshort"); }}classTooTallExceptionextendsException{
TooTallException(intheight){
super("height:"+height+"youaretootalltodothisjob"); }
TooTallException() {super("tootall");}}classHeightCheck{ publicstaticboolean
check(intheight) throwsTooShortException,TooTallException { if(height<170)thrownewTooShortException(height); elseif(height>180)thrownewTooTallException(height); elsereturntrue; }}publicclassException8 { publicstaticvoidmain(String
args[]){ if(args.length==0){
System.out.println("pleaseinputanumber!"); return;} try{
intheight=Integer.parseInt(args[0]); if(HeightCheck.check(height)){
System.out.println("height:"+height+"isok");}}
catch(NumberFormatException
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓機構(gòu)招生計劃保密條款
- 2025年度股東與企業(yè)間借款及風險承擔合同書
- 甲乙丙方2025年度農(nóng)業(yè)科技研發(fā)與應用合作協(xié)議模板
- 美甲店聘用合同-2025年度技師技能競賽激勵協(xié)議
- 二零二五年度企業(yè)行政人員崗位服務合同
- 二零二五年度房產(chǎn)抵押權(quán)設(shè)定協(xié)議
- 二零二五年度鐘點清潔工餐飲場所清潔用工協(xié)議
- 浙江國企招聘2024嘉興海寧中油能源有限公司招聘2人筆試參考題庫附帶答案詳解
- 二零二五年度商標授權(quán)及全球品牌授權(quán)合作協(xié)議書
- 二零二五年度農(nóng)村宅基房屋買賣與農(nóng)村產(chǎn)業(yè)扶貧合作合同
- extreme-sports 極限運動 英文 ppt
- 國際注冊建造師與項目管理師雙資格認證
- 面癱護理查房
- 財政部金融企業(yè)不良資產(chǎn)批量轉(zhuǎn)讓管理辦法(財金[2012]6號)
- 精品資料(2021-2022年收藏)建筑立面裝飾設(shè)計技術(shù)導則
- 倉庫管理警示標語
- ISO9001質(zhì)量管理體系目錄結(jié)構(gòu)
- 5米對數(shù)視力表及E尺寸標準A4
- 十三五全國眼健康規(guī)劃(2016-2020年)終期自評報告
- “十四五”交通運輸發(fā)展規(guī)劃思路
- 人口變動情況抽樣調(diào)查工作進展情況匯報
評論
0/150
提交評論