异常处理课件_第1页
异常处理课件_第2页
异常处理课件_第3页
异常处理课件_第4页
异常处理课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

异常处理

•5.1Java异常处理的基础知识

5.L1错误与异常

5.L1异常处理机制

1.抛出异常2.捕获异常3.异常处理的类层次

•5.2异常类的产生、捕获与处理

•5.3异常的分类

•5.4抛出异常

•5.5自定义异常类

5.2异常类的产生、捕获与处理

1.异常的产生

2.使用try-catch-finally语句捕获与处理异常

3.Exception异常类的方法

publicclassTryl

(

publicstaticvoidmain(Stringargs[])

(

inti=0;

inta[]={5,6,7,8);

fbr(i=O;i<5;i++)

System.out.println(na["+i+n]=n+a[i]);

System.out.print(n3/0=n+(3/0));

ArraylndexOutOfBoundsException

D:\myjava>javacTryl.java

D:\myjava>javaTryl

a[0]=5

a[l]=6

a[2]=7

a[3]=8

Exceptioninthread"main"java.lang.ArraylndexOutOfBoundsException

atTryl.main(Tryl.java:8)

D:\myjava>javacTryl.java

D:\myjava>javaTryl

Exceptioninthread"main"java.lang.ArithmeticException:/byzero

atTryl.main(tryl.java:9)

使用try-catch-finally语句捕获与

处理异常

〈语句1>

)

catch(ExceptionTypee)

(

〈语句2>

}

finally

〈语句3>

publicclassTry2

{publicstaticvoidmain(Stringargs[])

{inti=0;

inta[]={5,6,7,8};

fdr(i=0;i<5;i++)

{try

{System.out.print(,,a[,'+i+,,]/n+i+,-,'+(a[i]/i));

)

catch(ArrayIndexOutOfBoundsExceptione)

{System.out.print("捕获数组下标窥界异常!”);

}

catch(ArithmeticExceptione)

{System.out.print("捕获算术异常!");

)

catch(Exceptione)

{System.out.print("捕获"+e.getMessage()+"异常!");

}〃显示异常信息

finally

{System.out.println(nfinallyi="+i);捕获算术异常!finallyi=0

}a[l]/l=6finallyi=l

}a[2]/2=3finallyi=2

System.out.println("继续!)a[3]/3=2finallyi=3

}幕会数组下标越界异常!finallyi=4

}继续!

publicclassTry2

{publicstaticvoidmain(Stringargs[])

{inti=0;

inta[]={5,6,7,8);

fdr(i=0;i<5;i++)

{try

{System.out.print(,,a[,,+i+,,]/n+i+,-n+(a[i]/i));

)

/*catch(ArrayIndexOutOfBoundsExceptione)

{System.out.print("捕获数组下标越界异常!”);

catch(ArithmeticExceptione)

{System.out.print("扁获算汆异常!)

}*/

catch(Exceptione)

{System.out.print("捕获"+e.getMessage()+"异常!");

〃显示异常信息

D:\myjava>javaTry2

finally

捕获/byzero异常!finallyi=0

{System.out.println(nfinallyi="+i);

}“a[l]/l=6finallyi=l

a[2]/2=3finallyi=2

a[3]/3=2finallyi=3

System,out.println("继续!”);病素null异常!finallyi=4

}

继续!

5.3异常的分类

•1.异常类层次图

程序对错误与异常的三种处理方式:

①程序不能处理的错误

②程序应避免而不捕获的异常

③程序必须捕获的异常

例5.3文件没有找到异常类

•2.常见的公用异常类

importjava.io.*:

publicclassTry3

(

publicstaticvoidmain(Stringargs[])

(

FilelnputStreamfis=newFileInputStream(nautoexec.batn);

System.out.println(nIcannotfoundthisfile!n);

D:\myjava>javacTry3.java

Try3.java:6:unreportedexceptionjava.io.FileNotFoundException;mustbecaught

ordeclaredtobethrown

FilelnputStreamfis=newFileInputStream("autoexec.bat");

A

1error

D:\myjava>

5.4抛出异常

publicclassTry4

(

publicvoidrun(bytek)〃求k的阶乘1!=1

(2!=2

bytey=l,i;

for(i=1;i<=k;i++)3!=6

y=(byte)(y*i);

System.out.println(k+n!=n+y);4!=24

}5!=120

publicstaticvoidmain(Stringargs[])

(6!=-48

Try4a=newTry4();7!=-80

for(bytei=l;i<10;i++)

a.run(i);8!=-128

9!=-128

1.使用throw语句抛出异常

publicclassTry5

(

publicvoidrun(bytek)

(

bytey=l,i=l;

System.out.print(k+n!=M);

fbr(i=l;iv=k;i++)

(

try

(

if(y>Byte.MAX_VALUE/i)//Integer类的常量

thrownewException(ttoverflow^^);〃溢出时抛出异常,12行

else

y=(byte)(y*i);

catch(Exceptione)

System.out.println(nexception:n+e.getMessage());

e.printStackTrace();〃显示异常信息

System.exit(O);

System.out.println(y);

)

publicstaticvoidmain(Stringargs[])i=1

21=2

3!=6

Try5a=newTry5();4!=24

for(bytei=l;i<10;i++)5!=120

a.run(i);〃29行6!=exception:overflow

java.lang.Exception:overflow

atTry5.run(Try5java:12)

atTry5.main(Try5.java:29)

2,抛出异常的方法与调用方法处理异常

publicclassTry6

(

publicvoidcalc(bytek)throwsException〃抛出异常

(

bytey=l,i=l;

System.out.print(k+M!=n);

fbr(i=l;i〈=k;i++)

if(y>Byte.MAX_VALUE/i)

thrownewException("overflow");〃10行

else

y二(byte)(y*i);

System.out.println(y);

publicvoidrun(bytek)〃捕获并处理异常

{try一

{calc(k);〃20行

}

catch(Exceptione)

(

System.out.println(uexception:n+e.getMessage());

e.printStackTrace();

System.exit(O);

}

}

publicstaticvoidmain(Stringargs[])

(

Try6a=newTry6();

fbr(bytei=l;i<10;i++)

a.run(i);〃33行

Try6的运行结果

D:\myjava>javaTry6

1!=1

2!=2

31=6

4!=24

5!=120

6!=exception:overflow

java.lang.Exception:overflow

atTry6.cale(Try6.java:10)

atTry6.run(Try6.java:20)

atTry6.main(Try6.java:33)

3.由方法抛出异常交系统处理

importjava.io.*;

publicclassTry3

(

publicstaticvoidmain(Stringargs[])throwlOException

FilelnputStreamfis=newFileInputStream("autoexec上at");

5.5自定义异常类

classOverflowExceptionextendsException〃自定义异常类

(

publicvoidprintMsg()

(

System.out.println(nexception:n+this.getMessage());

this.printStackTrace();

System.exit(O);

publicclassTry7

publ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论