Java中异常处理.docx

上传人:lao****ou 文档编号:127165 上传时间:2023-04-05 格式:DOCX 页数:16 大小:25.59KB
下载 相关 举报
Java中异常处理.docx_第1页
第1页 / 共16页
Java中异常处理.docx_第2页
第2页 / 共16页
Java中异常处理.docx_第3页
第3页 / 共16页
Java中异常处理.docx_第4页
第4页 / 共16页
Java中异常处理.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java中异常处理.docx》由会员分享,可在线阅读,更多相关《Java中异常处理.docx(16页珍藏版)》请在第一文库网上搜索。

1、第13章异常课堂练习(2理论+2习题课+2上机)【教学目标】 了解异常和异常处理的概貌(第13.2节)。 探究使用异常处理的优点(第13.3节)。 区别异常的类型:致命的)和Exception (非致命的),以及必检和免检异常(第13.4节)。 在方法头中声明异常(第节)。 在方法中抛出异常(第节)。 编写trycatch块处理异常(第节)。 解释异常是如何传播的(第节)。 在try-catch块中使用finally子句(第13.6节)。 只为非预期错误使用异常(第13.7节)。 在catch块中重新抛出异常(第13.8节)。 创建链式异常(第13.9节)。 定义自定制的异常类(第13.10节

2、)。【教学重点】 了解异常的处理机制 异常的解决方法 Exception类的作用及其使用方法 必检异常、免检异常的特点【基本知识点】1、常见异常演示(1)算数异常:在算术运算中,0作为除数时,系统将产生该异常,示例:public static void main(String args) int x=10;int y=0;int m=x/y;)Exception in thread ,lmain,1 : / by zeroat exception . NotChe eke t Except ion. main (NotChecketExccptLion java: 7)在数组下标越界时,将产生

3、该异常,示例:public static void main(String args) int arr=1,2 3;System.out.printin(arr3);)Exception in thread ,main : 3at exception .NotChecketException.main(NotChecketExceptionjava:6)(3)数组存储异常:java.lang.ArrayStoreException在数组中存入与之声明类型不符的类型,将产生该异常,示例:public static void main(String args) boolean b = false,

4、true,false;int attr = 1,2,3;System. arraycopy (attrz 0, b, 0, 1);)Exception in thread ,lmainat java. lang. System.arraycopy(Native Method)at exceptionNotChecketExceptionmain(NotCheckctExccptionjava:7)将对象A转换成为对象B时,如果A既不是与B同一个类,也不是B的子类,将产生该异常,示例:public static void main(String args) Object obj = new Ob

5、ject ();int ir = (int ) obj ;)Exception in thread ,lmain : java. lang.Object cannot be cast to Iat exception .NotChecketException.main(NotChecketExceptionjava:6)引用空对象的实例或方法时,将产生该异常。示例:public static void main(String args) String str = null;System.out.rintln(str. length ();)Exception in thread ,lmain2

6、、trycatch语句捕获异常public class ExceptionDemol public static void main(String args) int i = 1, 2, 3 ;try System. out.printin (,i 0 = + i 0);System.out.printin(i3= i3); catch (ArraylndexOutOfBoundsException e) System. out.printin (出现异常” + e . getMessage ();)System.out.printin (i1= + i 1);)i0=l出现异常3il=2以上

7、面的程序运行结果可以发现,在程序中加入异常处理代码后,当异常发生时,整个程序没有因为异常的出现而中断执行。3 try.catchfinally语句捕获异常public class ExceptionDemo4 public static void main(String args) int i = 1, 2, 3 ;try (System. outprintln (lli 0 = + i 0);System. out.printin (lli 3 = + i 3); catch (ArraylndexOutOfBoundsException e) System. out.printin (,l

8、 出现异常” + e . getMessage ();finallySystem. out.printin (无论是否有异常,都会执行finally语句n);)System. out.printin (,i 1 = + i 1 );)iO=l出现异常3无论是否有异常,都会执行finally语句il=2其中,不论try代码块中发生了哪种异常,也不论try代码块和catch代码块是否可以正常执行,finally代码块都保证会执行。即使前面的try.catch代码块都无法捕获这个异常,或者在catch代码块中还有其他异常产生,在将新的异常传递给java运行时环境之前都会先执行finally代码块。4

9、、多个catch代码块public class ExceptionDemo5 public static void main(String args) FileReader fr = null;try fr=new FileReader(testtxt);fr. read (); catch (FileNotFoundException e) / TODO Auto-generated catch blocke. printStackTrace (); catch (IOException e) / TODO Auto-generated catch blocke. printStackTra

10、ce ();finallytry frclose (); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace ();)使用多个catch语句块的时候,请注意catch代码块的排顺序问题。Catch代码块捕获异常是按照顺序的,如果前面已经有一个异常类型被捕获了,但乂同时满足后面的异常类型时,就不会被捕获了。5、在调用方法出处理被抛出的异常public class Exception public static void arrException () throws IOExceptionFileRead

11、er f r = new FilReadr (不存在的文档 txt ”);fr. close ();)public static void main(String args) try arrException (); catch (IOException e) / TODO Auto-generated catch blocke. printstackTrace ();)在上面的程序中,“不存在的文档”表示在同一个目录下没有该文档。当arrException ()方法产生了异常,此方法并不作处理,而是交由调用arrException ()方法的main方法处理。6、错误的使用throws678

12、910ne12qB14加5 1617181920public class ExceptionDemo7 public static void arrExcetion() throws Excetion(FileReader fr new FileReQdur(不存在的文档,txt:”);fr.close()j)public static void main(String args) try 0ZC3g困四Q; catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace()j)在上面的程序中,arrExcept

13、ion ()方法抛出的异常类型为Exceptiono比调用arrException ()方法的main方法能处理的异常范围大,所以编译错误。7、主方法main使用throws关键字public class ExceptionDemo8 public static void arrException () throws ExcetionFileReader f r = new FilReadr (不存在的文档. txt);fr. close ();)public static void main(String args) throws Exception arrException();)Exce

14、ption in thread main” :不存在的文档. txt (No such file or directory)at java . ioFileInputstream.open(Native Method)at java. io . Fileinputstream.(File1nputStrcamjava :14 6)at javaioFileInputstream.(File工nputStream.java :101)at java . io .FileReader.(FileReaderjeva:58)at exceptionExceptionDemo8arrException(ExceptionDemo8java:8)at exception . ExceptionDemo8main(ExceptionDemo8j ava:12)8、若需要在程序中自行抛出异常,可以使用throw关键字。Throw语句可以单独使用,用于方法体内部,throw抛出的是异

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服