第07章 java语言中的异常

第07章 java语言中的异常

ID:34393968

大小:349.30 KB

页数:47页

时间:2019-03-05

第07章 java语言中的异常_第1页
第07章 java语言中的异常_第2页
第07章 java语言中的异常_第3页
第07章 java语言中的异常_第4页
第07章 java语言中的异常_第5页
资源描述:

《第07章 java语言中的异常》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第07章JAVA语言中的异常主讲:程细柱韶关学院计算机科学学院JAVA语言中的异常§编写程序时多多少少总会有些错误,程序中的语法错误会在编译时被发现并修正,而有些错误是发生在运行阶段的。§这些错误依照其严重程度分为两类:¢一类是致命性的严重错误,它们的出现可能会导致系统崩溃,并且程序员并不能编写程序解决所出现的问题。¢另一类是普通级别的错误,这类错误如果不加控制就使程序非正常中断,但如果编写代码来处理的话,就有可能避免中断程序的执行。这类错误一般地称为异常(Exception),用来处理异常的过程称为异常处理。JAVA语言中的异常§在Java中主要有三类异常。事实上,Java定义了类java.

2、lang.Throwable,它是使用异常处理机制可被抛出并捕获的所有异常对象的父类。它有三个基本子类,如下图:JAVA语言中的异常§每个类的使用目的不同:¢Error表示很难恢复的错误。一般不期望用户程序来处理,即使程序员有能力处理这种错误,也还是交给系统处理为好。¢RuntimeException用来表示设计或实现方面的问题。因为设计和实现正确的程序不会引发这类异常,所以常常不处理它。发生这类异常时,运行时环境会输出一条信息,提示用户修正错误。¢其他异常表示运行时因环境的影响可能发生并可被处理的问题。因为用户的错误很可能导致这类问题发生,我们要学习的是如何处理这类异常。7.1异常示例§例7

3、-1文件操作功能描述{openTheFile;//打开文件determineitssize;//获取文件的长度allocatethatmuchmemory;//分配内存read-file;//读文件closeTheFile;//关闭文件}7.1异常示例(续)§实现文件读取的程序大多有上述这样的程序框架。因为文件存放在外存,程序要访问文件时必须先要将文件放入内存然后才能访问。这段程序是顺序执行结构,而前一句执行的结果又直接影响后一句是否能执行。如果中间哪一条语句执行不正确,后续语句都不能正确执行,程序也会中断。所以凡是有输入输出操作的语句都可能会出现问题。7.1异常示例(续)§例7-2增加了约束

4、的文件操作功能描述openFiles;//打开文件if(theFilesOpen){//判定打开是否正确determinethelengthofthefile;//获取文件的长度if(gotTheFileLength){//判定已得到文件长度allocatethatmuchmemory;//分配内存if(gotEnoughMemory){//内存分配成功readthefileintomemory;//读文件if(readFailed)errorCode=-1;//读取失败elseerrorCode=-2;//读取成功closeTheFile;//关闭文件}else7.1异常示例(续)elsee

5、rrorCode=-3;//内存分配不成功}elseerrorCode=-4;//没有得到文件长度}elseerrorCode=-5;//文件打开不正确Java提供的异常处理机制§程序发生异常时称为产生了一个异常事件,系统根据异常生成一个异常对象。§根据这个异常的种类,该对象可能由正在运行的方法生成,也可能由JVM生成。异常对象中包含了该异常必要的详细说明信息,包括所发生的异常事件的类型及异常发生时程序的运行状态。§生成的异常对象传递给Java运行时系统,运行时系统寻找相应的代码来处理这一异常。§我们把生成异常对象并把它提交给运行时系统的这一过程称为抛出(throw)一个异常。7.1异常示例(

6、续)§异常发生后,Java运行时系统从生成对象的代码块开始进行回溯,沿方法的调用栈逐层回溯寻找处理代码,并把异常对象交给该方法处理,这一过程称为捕获(catch)。如图所示:7.1异常示例(续)§例7-3下面用异常处理方式重写例7-2。try{openTheFile;//打开文件determineitssize;//获取文件的长度allocatethatmuchmemory;//分配内存read-File;//读文件closeTheFile;//关闭文件}catch(fileopenFailed){//文件打开失败的处理代码;}catch(sizeDetermineFailed){//不能获得

7、文件大小的处理代码;}catch(memoryAllocateFailed){//内存分配失败的处理代码;}catch(readFailed){//读文件失败的处理代码;}catch(fileCloseFailed){//关闭文件失败的处理代码;}finally{//需要统一处理的代码;}程序7-1I/O操作示例importjava.io.*;publicclassTryException{pub

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

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

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