cstp培训课件_9异常

cstp培训课件_9异常

ID:5897525

大小:248.50 KB

页数:38页

时间:2017-11-16

cstp培训课件_9异常_第1页
cstp培训课件_9异常_第2页
cstp培训课件_9异常_第3页
cstp培训课件_9异常_第4页
cstp培训课件_9异常_第5页
资源描述:

《cstp培训课件_9异常》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、异常处理目标简介异常处理throw、throws异常的继承架构总结一个程序的编写的过程中,避免程序执行时的错误,往往占了程序开发时程的绝大多数时间,对于避免程序执行时的错误,Java提供了异常处理机制。在还没有学习异常处理之前,如果您要编写一个除法程序,并由使用者输入除数与被除数,由于被除数除以0没有意义,所以之前可能必须像以下这样避免错误:if(b!=0)System.out.println(a/b); elseSystem.out.println("除数不能为0");这样的方式过去在一些程序语言中会很常被利用,利用判断条件来避免错误的发生,然而这样的方式

2、会让错误处理与程序的处理逻辑混在一起,使得程序难以阅读,而由于使用了一些判断条件,即使有一些很少发生的错误,也都必须一视同仁的进行判断检查,这会使得程序的执行效能受到一定程度的影响。Java的异常处理机制可以协助我们捕捉程序执行时期的错误,它用来处理一些系统可以恢复的错误,异常(Exception)是Java中定义的一种对象数据型态,在特定错误发生时会丢出异常对象,我们可以捕捉这些异常并加以处理,避免程序可能的错误发生。Java的异常处理藉由"try"、"catch"、"finally"三个关键词组合的语言来达到,其语法基本结构如下:try{   //陈述句

3、} catch(异常类型名称){   //异常处理} finally{   //一定会处理的区块}一个“try”所包括的区块,必须有对应的“catch”区块,它可以有多个“catch”区域,而“finally”可有可无,如果没有定义“catch”区块,则一定要有“finally”区块。建议:大家在编写异常时,多使用finallyimportjava.io.*; publicclassUseException{ publicstaticvoidmain(String[]args){ try{intinput;BufferedReaderbuf=newBuff

4、eredReader( newInputStreamReader(System.in));System.out.print("请输入整数:");input=Integer.parseInt(buf.readLine());System.out.println("inputx10="+(input*10)); }catch(IOExceptione){System.out.println("I/O错误"); }catch(NumberFormatExceptione){System.out.println("输入格式有误"); } } }异常处理是程序在执行但

5、发生错误并无法处理时,会丢出一个异常对象,在这个程序中,您特意使用BufferedReader取得输入,当使用BufferedReader类别时,若发生I/O错误会丢出IOException异常,这个异常您必须处理。您试着从使用者输入取得一个整数值,由BufferedReader对象所读取到的输入是个字符串,您使用Integer类别的parseInt()方法试着剖析该字符串为整数,如果无法解析,则会发生错误并丢出一个NumberFormatException异常对象,当这个异常丢出后,程序会离开目前执行的位置,而如果设定的“catch”有捕捉这个异常,则会执

6、行对应区块中的陈述句,注意当异常一但抛出,就不会再回到异常的抛出点了。如果程序中设定有“finally”区块,则无论异常是否有发生,则一定会执行“finally”区块中所定义的陈述句,“finally”区块使用时机的例子之一,就是当您开启了某个文件时,在读/写的过程中发生错误,在使用“catch”区块处理相对应的异常之后,最后在“finally”区块中定义一些关闭文件的动作,让关闭文件的动作一定会被执行。使用异常处理的好处是您可以将程序逻辑与错误处理分开,使得程序易于编写、阅读与维护,由于异常处理是在程序执行时发生错误,而没有办法处理之时才产生异常对象,所以

7、与使用判断式来避免异常的方式比起来,异常处理会有比较好的执行效能。当程序发生错误而无法处理的时候,会抛出对应的异常对象,除此之外,在某些时刻,您可能会想要自行抛出异常,例如在异常处理结束后,再将异常抛出,让下一层异常处理区块来捕捉,若想要自行抛出异常,您可以使用"throw"关键词,并生成指定的异常对象,例如:thrownewArithmeticException();举个例子来说明,在Java的除法中,允许除数为浮点数0.0,所得到的是Infinity,即无穷数,如果您想要自行检验除零错误,可以自行丢出异常,最接近这个条件的是ArithmeticExcep

8、tion,当除数为整数且为0时,就会引发这个异常,您

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。