Java程序设计-9-异常.ppt

Java程序设计-9-异常.ppt

ID:52267478

大小:770.00 KB

页数:48页

时间:2020-04-03

Java程序设计-9-异常.ppt_第1页
Java程序设计-9-异常.ppt_第2页
Java程序设计-9-异常.ppt_第3页
Java程序设计-9-异常.ppt_第4页
Java程序设计-9-异常.ppt_第5页
资源描述:

《Java程序设计-9-异常.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java程序设计第九章异常控制学习目标理解异常概念,清楚错误和异常的区别以及运行时异常和检测异常的差异了解程序中发生异常的根源,能够利用try/catch和finally处理异常能够自定义异常类掌握方法定义中的异常声明方法执行中抛出异常对象掌握异常处理的基本规则9.1异常1.什么是异常?在程序执行中,任何中断正常程序流程的异常条件就是错误或异常。例如,程序运行发生下列情况时,会出现异常:想打开的文件不存在网络连接中断接受了不符合逻辑的操作数系统资源不足问题:当程序执行中发生了这些事情后,如何处理呢?

2、讨论一个打开文件,读取内容的过程可能发生的错误openTheFile指定的文件是否存在,能否打开(权限)allocatethatmuchmemory能否得到正确的文件长度,有无足够的内存容纳读入的数据read-File格式是否正确,能否正常读到内容(介质错误),没有权限closeTheFile是否能够正常关闭,例如通道连接是否正常,文件错误、被其他文件锁定等以常规方法处理错误:以常规方法处理错误存在的问题:大部分程序代码花在出错处理上了只把能够想到的错误考虑到,对以外的情况无法处理程序可读性差,大量

3、的错误处理代码混杂在程序中出错返回信息量太少,无法更确切的了解错误状况或原因正常返回信息和错误返回信息混为一谈intfileProcessor(StringfileName){if(theFilesOpen){getthelengthofthefile;if(gotTheFileLength){allocatethatmuchmemory;if(gotEnoughMemory){readthefileintomemory;if(readFailed)errorCode=-1;elseerrorCod

4、e=-2;}elseerrorCode=-3;}elseerrorCode=-4;}elseerrorCode=-5;returnerrorCode;}2、Java中的异常Java通过面向对象的方法来处理程序错误,在Java中,错误被称为例外(Exception),有时也把例外称为异常。在一个方法的运行过程中,如果发生了例外,则这个方法(或者是Java虚拟机)生成一个代表该例外的对象(包含了该例外的详细信息),并把它交给运行时系统,运行时系统寻找相应的代码来处理这一例外。我们把生成例外对象并把它提交

5、给运行时系统的过程称为抛出(throw)一个例外。运行时系统在方法的调用栈中查找,从生成例外的方法开始进行回朔,直到找到包含相应例外处理的方法为止,这一个过程称为捕获(catch)一个例外。用例外的形式处理错误:Trytry{openTheFile;determineitssize;allocatethatmuchmemory;read-File;closeTheFile;}catch(FileopenFailede){dosomething;}catch(SizeDetermineFailede)

6、{dosomething;}catch(MemoryAllocateFailede){dosomething;}catch(ReadFailede){dosomething;}catch(FileCloseFailede){dosomething;}finally{dosomething;}Try中包含的是正常处理的代码Catch用来捕获某类异常,并加以处理,每个catch捕获一类异常无论是否有异常发生,均要执行的的代码例外机制的优点:把错误处理代码从常规代码中分离出来按错误类型和差别分组对无法预测

7、的错误的捕获和处理(基类)克服了传统方法的错误信息有限的问题(getMessage)把错误传播给调用堆栈9.1.1异常分类体系Throwable类是Java语言中所有错误或异常的超类。Throwable包含了导致其发生的执行过程(可以理解为方法调用顺序)的快照,通过此信息可以追根求源到问题出现的原始位置。它还包含了给出有关错误更多信息的消息字符串。Throwable类的主要方法Throwable类的主要方法Throwable()Throwable(Stringmessage)StringtoStri

8、ng()注:返回的是“classname”:“getMessage()”StringgetMessage()StringgetLocalizedMessage()voidprintStackTrace()voidprintStackTrace(PrintStreams)voidprintStackTrace(PrintWriters)ThrowablefillInStackTrace()Throwable类的子类错误类(Error)在Java编程语言中,错误类(Err

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

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

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