異常類(lèi)的定義及處理_第1頁(yè)
異常類(lèi)的定義及處理_第2頁(yè)
異常類(lèi)的定義及處理_第3頁(yè)
異常類(lèi)的定義及處理_第4頁(yè)
異常類(lèi)的定義及處理_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、實(shí)驗(yàn)名稱(chēng)異常類(lèi)的定義及處理二、實(shí)驗(yàn)?zāi)康?)了解異常處理方法。2)熟悉并掌握常見(jiàn)異常的捕獲方法。3)熟悉JDK中已經(jīng)定義的若干異常類(lèi)的層次結(jié)構(gòu)。4)掌握自定義異常類(lèi)的創(chuàng)建方法。二、實(shí)驗(yàn)記錄1.編寫(xiě)程序?qū)崿F(xiàn)如下功能:生成并捕獲到NegativeArraySizeException 和 IndexOutOfBoundsException類(lèi)型的異常,并顯示捕獲到的異常信息。然后在此基礎(chǔ)上生成并捕獲到NullPoi nterException類(lèi)型的異常,并顯示捕獲到的異常信息。步驟(1):編寫(xiě)一個(gè)包含 main方法的Application類(lèi)TestException ,然后定義一個(gè)方法void ar

2、raySize() 生成并捕獲 NegativeArraySizeException 異常。步驟(2):添加一個(gè)方法void outofBound()生成并捕獲 IndexOutOfBoundsException異常。步驟(3):添加一個(gè)方法void nullPointer() 生成并捕獲 IndexOutOfBoundsException異常。步驟(4):在ma in方法中分別調(diào)用以上三個(gè)方法。步驟(5):將文件保存為 TestException.java,然后編譯、調(diào)試應(yīng)用程序。步驟(6):將outofBound()方法中捕獲異常的語(yǔ)句注釋掉,重新編譯程序,看看會(huì)不會(huì)有什么語(yǔ)法錯(cuò)誤?如果沒(méi)

3、錯(cuò)誤,執(zhí)行程序看結(jié)果有什么不同?步驟(7):將array方法重新定義為如下形式:void arraySize() throws NegativeArraySizeExcepti on然后修改arraySize 方法中捕獲NegativeArraySizeException異常的語(yǔ)句執(zhí)行部分。源程序如下:class TestExcepti on public static void main( Stri ng args) try outofB ound (); arraySize ();nullPoi nter (); catch (NegativeArraySizeExcepti on e)S

4、ystem. out .println(e.toString();static void arraySize()try int a;a= new int -3; catch (NegativeArraySizeException e)System. out .println( Error:Negative Array Size);static void outofBo un d()try int i; int a;a= new int 5;for (i=0;i Tfr$tExceptioni Jv Applicdtioin Di:Prograrn File$GenuiitecCoinrnonb

5、inarycOfTi.$uni.java.jdlc.wiri32.M8&_lti5.0a013birijiavawi_(2)_注釋掉outofBound()方法中捕獲異常的語(yǔ)句a(2=2a3-3Error:Negative Array SizeError:Null Pointer(3)重新定義array方法2編寫(xiě)程序?qū)崿F(xiàn)如下功能:計(jì)算兩個(gè)數(shù)之和,參與求和運(yùn)算的每個(gè)數(shù)的值都必須在10-20之間,當(dāng)任意一個(gè)數(shù)超出范圍時(shí),拋出自己的異常。步驟(1):基于系統(tǒng)異常類(lèi)Exception,定義自己的異常類(lèi)NumberRangeException。步驟(2):定義包含 main 方法的 Applicatio

6、n 類(lèi) SelfException 。步驟(3):在SelfException類(lèi)中添加公共方法:Public static int selfExceptionTest(int int1,int int2) throws NumberRangeException使之能在求int1,int2兩個(gè)數(shù)和之前檢查兩個(gè)數(shù)的數(shù)值范圍,若符合條件則求和,否則拋出異常 NumberRangeException 。步驟(4):在 main方法中調(diào)用 selfExceptionTest方法。步驟(5):保存文件為SelfException.java,然后編譯并調(diào)試程序。步驟(6):修改main方法中調(diào)用selfEx

7、ceptionTest方法的實(shí)參,看看程序的運(yùn)行結(jié)果有什么不同。源程序如下:class NumberRa ngeExceptio nexte nds Excepti onprivate int int1 , int2 ;int result ;publicNumberRa ngeExcepti on( Stri ng message,intin t1,intin t2)super (message);this . int1 =int1;this . int2 =int2;public class SelfExcepti on publicstaticvoidselfExcepti on Tes

8、t(intin t1,intin t2)throwsNumberRa ngeExcepti onif (int120)|(int220) throw new NumberRangeException(” 超出指定范圍 ”,int1, int2);System.out.println(int仁+i nt1+ +i nt2=publictry+i nt2+n +result=+(i nt1+i nt2);void getSum() selfExcepti on Test(25,15); catch (NumberRangeException e)System. out .println(”數(shù)值超出

9、指定范圍”);public static void main( Stri ng args):-31:SelfException num =new SelfException();r -c鬢|囲5J匱更)1吋貝鬥,臥 Prablern$ O Javadoc 屬 Declaration S Console 當(dāng) SelfException Java Application D:Pnogintl-15 inc2=15result303編寫(xiě)一個(gè)程序,用于根據(jù)用戶輸入的命令行參數(shù)數(shù)量來(lái)計(jì)算長(zhǎng)方形、正方形、三角形的面積。如果輸入0,則異常處理方法顯的參數(shù)個(gè)數(shù)為1、2、3則它們應(yīng)分別對(duì)應(yīng)正方形、長(zhǎng)方形、三角形

10、,如果參數(shù)值為 示錯(cuò)誤消息。提示:自己定義一個(gè)異常類(lèi),表示參數(shù)個(gè)數(shù)0這一異常。然后定義一個(gè)抽象的父類(lèi),并提供一個(gè)抽象的方法area(),再派生出三個(gè)子類(lèi),重寫(xiě)area方法,最后在 main方法中編寫(xiě)測(cè)試邏輯。源程序如下:import java.io.*;class NullParameterException extendsExceptionNullParameterExceptio n(Stri ng Message) super (Message);class TestArea public static void main(String args)Shape sh= n ull ;Str

11、ing s= ,s1= ,s2= ,s3=int n=0;double a=0,b=0,c=0;try BufferedReaderin= newInputStreamReader(System.in );System. out .print(Pleasein puttheparameter(i nput0,1,2or3):);s=in. readL in e(); n=ln teger.parse Int(s); catch (IOException e)BufferedReader(newnu mberoftry BufferedReaderInputStreamReader(System

12、.in );switch (n) case 1: System.out .print(s1= in. readL in e();a=Double. System.out .print(sh= new Square(a);in= newBufferedReader(newPlease in put a parameter:);parseDouble(s1);The area of the square is:);break ;case 2: System.out .pri nt( Please in put the 1st parameters1= in. readL in e();a=Doub

13、le.parseDouble (s1);System.out .print(s2=in. readL in e();b=Double.Please in put the 2nd parameterparseDouble (s2);System.out .print( The area of the rectangle issh= new Recta ngle(a,b);breakcase 3: System.out .print(s1= in. readL in e();a=Double.Please in put the 1st parameterparseDouble (s1);Syste

14、m.out .print(s2=i n.readLi ne();b=Double.System.out .print(s3=in. readL in e();c=Double.Please in put the 2nd parameter parseDouble (s2);Please in put the 3rd parameter parseDouble (s3);System.out .print(The area of the triangle is:);:);:);:);:);:);:);sh=new Trian gle(a,b,c);breakcase 0: throw new N

15、ullParameterException(The number of parameteris n ull! );System. out .println(sh.area(); catch (Exception e)System.out .println(e.toString();abstract class Shapeabstract double area();classTrian gleexte nds Shapedouble a, b, c;Triangle( double a, double b, double c)this . a=a;this . b=b;this . c=c;d

16、ouble area()double s;s=( a+b + c)/2;return (Math. sqrt (s*(s-a)*(s- b )*(s-c);classRecta ngleexte ndsShapedouble l , w;Recta ngle(double l, double w)this . l =l;this . w=w;double area()return ( l * w);class Squareexte nds Shapedouble l ;Square( double l)this . l =1;double area()return l * l ;運(yùn)行結(jié)果如下:

17、(1 )He Prcblerns Javadoc Declaration | 旦 Console 利口 口 TestArea Java Application D:Program丸 場(chǎng)I芻證更)1 m旦丁鬥-Please input the number of paraiteter inputOf 1, 2cr3) :-1*NullParair:eterExcepticn: The nuidcer of parameter is null! *(2)* . Problems | Javadoc | 爲(wèi) Decl a ratio 叫貝 Console 滋E3eTterminated * Test

18、Area Java Application DtProgram乂 .糾x扇卿禎1 c! e n*Please input 匸h皀 nuraber of parameter (inputO, 1 f 2or3):APlease input a parameteri 2The area of the square is弓01 44(3)甌 Problems | Ja旳dot 曉 DEaraticn EJ Console 常四、個(gè)人小結(jié)本次實(shí)驗(yàn)是編寫(xiě)三個(gè)java程序?qū)崿F(xiàn)簡(jiǎn)單的功能并從中認(rèn)識(shí)java異常類(lèi)的定義及處理,其中第一個(gè)和第二個(gè)實(shí)驗(yàn)要求檢驗(yàn)自己定義的異常類(lèi),以修改一些參數(shù)來(lái)達(dá)到目的,修改參數(shù)后可以看到運(yùn)行結(jié)果不同,這樣就使我們深刻認(rèn)識(shí)到在java中捕獲異常與處理異常的重要性。實(shí)驗(yàn)是在java集成開(kāi)發(fā)環(huán)境Myeclipse中完成的,在 Myeclipse中完成java源程序的編輯、編譯與運(yùn)行。實(shí)驗(yàn)中遇到過(guò)很多問(wèn)題,而Myeclipse能夠較準(zhǔn)確的指出錯(cuò)誤并提出修改建議,在不斷的修改后,終于使得所寫(xiě)的程序沒(méi)有語(yǔ)法等錯(cuò)誤,但在運(yùn) 行時(shí)卻不能正常運(yùn)行,經(jīng)檢查發(fā)現(xiàn)是方法的調(diào)用以及

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論