第7章異常處理_第1頁(yè)
第7章異常處理_第2頁(yè)
第7章異常處理_第3頁(yè)
第7章異常處理_第4頁(yè)
第7章異常處理_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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、 AWTError VirtualMachineError ArithmeticException ArrayIndexOutOfBoundsException Interrupted Exception Error Exception RuntimeException AWTException IOException LinkageError Throwable FileNotFoundException EOFException 1. java.lang.ArithmeticException 0作除數(shù)(包括模),將產(chǎn)生這類異常。作除數(shù)(包括模),將產(chǎn)生這類異常。例如:例如:int x=0

2、 , y; y=100/x ; 2. java.lang.ArrayIndexOutOfBoundsException 例如:例如:int a =new int10; a10=0; 7.1 異常的層次結(jié)構(gòu)異常的層次結(jié)構(gòu)( (續(xù)續(xù)) ) 3. java.lang.ArrayStoreException例如:例如:int a =new int10; boolean b =new boolean10; System.arraycopy(a,0,b,3,6); /有異常有異常 4. java.lang.ClassCastException例如:例如:Object obj=new Object( );

3、int a =(int ) (obj); 7.1 異常的層次結(jié)構(gòu)異常的層次結(jié)構(gòu)( (續(xù)續(xù)) ) 5. java.lang.IndexOutOfBoundsException 例如:例如:char ch=ABC.charAt(99); 注意注意: 2 是是5的子類。的子類。 6. java.lang.NegativeArraySizeException 例如:例如:int a =new int-10; 7.1 異常的層次結(jié)構(gòu)異常的層次結(jié)構(gòu)( (續(xù)續(xù)) ) 7. java.lang.NullPointerException 例如:例如:int a =null ; System.out.print(

4、a.length); public class DefaultException / 程序程序7-1 public static void main(String args ) int a,b=0;a=2/b; / 此處有異常此處有異常System.out.println(“a=”+a); / 不運(yùn)行此行不運(yùn)行此行 7.2 異常處理語(yǔ)句異常處理語(yǔ)句( (續(xù)續(xù)) ) 異常處理語(yǔ)句有異常處理語(yǔ)句有try、catch、finally、throw和和throws。異常處理的形式為:異常處理的形式為: try程序執(zhí)行體程序執(zhí)行體catch(異常類型異常類型1 異常對(duì)象異常對(duì)象1)異常處理程序體異常處理程

5、序體1catch(異常類型異常類型2 異常對(duì)象異常對(duì)象2)異常處理程序體異常處理程序體2finally 異常處理結(jié)束前的執(zhí)行程序體異常處理結(jié)束前的執(zhí)行程序體 public class TryCatchTest / 程序程序7-2 public static void main(String args ) int a=99,b=0,c; trySystem.out.println(產(chǎn)生異常之前產(chǎn)生異常之前);c=a/b; / 該行有異常該行有異常System.out.println(產(chǎn)生異常之后產(chǎn)生異常之后);catch(ArrayIndexOutOfBoundsException e) Sys

6、tem.out.println(處理下標(biāo)越界異常處理下標(biāo)越界異常);catch(ArithmeticException e) System.out.println(處理算術(shù)異常處理算術(shù)異常); System.out.println(異常處理結(jié)束異常處理結(jié)束); 注意:注意:用用catch語(yǔ)句捕捉異常時(shí),若找不到相匹配語(yǔ)句捕捉異常時(shí),若找不到相匹配的的catch語(yǔ)句,將執(zhí)行缺省的異常處理。語(yǔ)句,將執(zhí)行缺省的異常處理。例如:例如:int a=99,b=0,c; tryc=a/b; /產(chǎn)生的異常和捕捉的異常類型不一致產(chǎn)生的異常和捕捉的異常類型不一致 catch(ArrayIndexOutOfBoun

7、dsException e) System.out.println(處理異常處理異常); 注意:注意:當(dāng)有多個(gè)當(dāng)有多個(gè)catch語(yǔ)句時(shí),系統(tǒng)依照先后順語(yǔ)句時(shí),系統(tǒng)依照先后順序逐個(gè)檢查序逐個(gè)檢查 。例如:例如:tryc=a/b;catch(ArithmeticException e) System.out.println(Divided by zero);catch(RuntimeException e) System.out.println(Divided by zero); public class testFinally / 程序程序7-3 public static void main(

8、String args ) int a,b=0;for(int i=0;i=3;i+)System.out.println(Test No: +(i+1); tryswitch(i)case 0: a=3/b; break;case 1: int c =new int10; c10=0; break;case 2: char ch=ABC.charAt(99); break;case 3: return;catch(ArithmeticException e) System.out.println(“零作除數(shù)!零作除數(shù)!”); catch(ArrayIndexOutOfBoundsExcept

9、ion e) System.out.println(數(shù)組下標(biāo)越界!數(shù)組下標(biāo)越界!);catch(IndexOutOfBoundsException e) System.out.println(下標(biāo)越界!下標(biāo)越界!);finallySystem.out.println(在在finally塊中!塊中!); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:Test No: 1 零作除數(shù)!零作除數(shù)! 在在finally塊中!塊中!Test No: 2 數(shù)組下標(biāo)越界!數(shù)組下標(biāo)越界! 在在finally塊中!塊中!Test No: 3 下標(biāo)越界!下標(biāo)越界! 在在finally塊中!塊中!Test No: 4 在在finall

10、y塊中!塊中! public class ThrowException / 程序程序7-4 public static void Test( ) tryint c =new int10;c10=0; catch(ArrayIndexOutOfBoundsException e) System.out.println(t 數(shù)組下標(biāo)越界!數(shù)組下標(biāo)越界!);throw e; / 拋出點(diǎn)拋出點(diǎn)/System.out.println(t產(chǎn)生異常后產(chǎn)生異常后!); public static void main(String args ) tryTest( );catch(IndexOutOfBounds

11、Exception e) System.out.println(t 下標(biāo)越界!下標(biāo)越界!);finallySystem.out.println(t 在在finally塊中!塊中!); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:數(shù)組下標(biāo)越界!數(shù)組下標(biāo)越界!下標(biāo)越界!下標(biāo)越界!在在finally塊中!塊中! import java.io.*; / 程序程序7-6public class testThrows public static String readString( )throws IOExceptionint ch;String r=;boolean done=false;while(!done)ch=

12、System.in.read( );if(ch0 | ch=0 xd) done=true;elser = r + (char) ch; return r; 注意注意 public static void main(String args ) String str;try str=readString( );catch(IOException e) System.out.println(產(chǎn)生了輸出產(chǎn)生了輸出/輸出異常輸出異常); return;System.out.println(整數(shù)是:整數(shù)是:+Integer.parseInt(str); 第第1步:步:定義異常類。定義異常類。例如例如:c

13、lass userException extends Exceptionint n=0; / 計(jì)數(shù)器計(jì)數(shù)器userException( ) n+;userException(String s )super(s);n+; String show( ) return 自定義異常對(duì)象:自定義異常對(duì)象:+n; 第第2步:步:定義異常對(duì)象,并拋出該對(duì)象。定義異常對(duì)象,并拋出該對(duì)象。 例如例如:public class testException / 程序程序7-7 static void Test( ) throws userExceptionuserException e;e=new userExce

14、ption(自定義異常自定義異常 );throw e; public static void main(String args ) tryTest( );catch(userException e) System.out.println(e.show( ); class userException extends Exception / 程序程序7-8public userException( ) super(自定義異常自定義異常); public class getMessagespublic static void m1( ) throws userExceptionm2( );public static void m2( ) throws userExceptionthrow new userException( ); public static void main(String args ) trym1( ); catch(userException e) System.out.println(e.getMessage( );e.printStackTrace( );System.out.println(“

溫馨提示

  • 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)論