異常機制處理課件_第1頁
異常機制處理課件_第2頁
異常機制處理課件_第3頁
異常機制處理課件_第4頁
異常機制處理課件_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論