- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 JAVA语言中的异常 异常 编写程序时多多少少总会有些错误,程序中的语法错误会在编译时被发现并修正,而有些错误是发生在运行阶段的。 这些错误依照其严重程度分为两类, 一类是致命性的严重错误,它们的出现可能会导致系统崩溃,并且程序员并不能编写程序解决所出现的问题。 另一类是普通级别的错误,这类错误如果不加控制就使程序非正常中断,但如果编写代码来处理的话,就有可能避免中断程序的执行。这类错误一般地称为异常(Exception),用来处理异常的过程称为异常处理。 异常 在Java中主要有三类异常。事实上,Java定义了类java.lang.Throwable,它是使用异常处理机制可被抛出并捕获的所有异常对象的父类。它有三个基本子类,如下图: 异常 每个类的使用目的不同。 Error表示很难恢复的错误。一般不期望用户程序来处理,即使程序员有能力处理这种错误,也还是交给系统处理为好。 RuntimeException用来表示设计或实现方面的问题。因为设计和实现正确的程序不会引发这类异常,所以常常不处理它。发生这类异常时,运行时环境会输出一条信息,提示用户修正错误。 其他异常表示运行时因环境的影响可能发生并可被处理的问题。因为用户的错误很可能导致这类问题发生,我们要学习的是如何处理这类异常。 异常示例 例7-1 文件操作功能描述 { openTheFile; //打开文件 determine its size; //获取文件的长度 allocate that much memory; //分配内存 read-file; //读文件 closeTheFile; //关闭文件 } 实现文件读取的程序大多有上述这样的程序框架。因为文件存放在外存,程序要访问文件时必须先要将文件放入内存然后才能访问。这段程序是顺序执行结构,而前一句执行的结果又直接影响后一句是否能执行。如果中间哪一条语句执行不正确,后续语句都不能正确执行,程序也会中断。所以凡是有输入输出操作的语句都可能会出现问题。 异常示例 例7-2 增加了约束的文件操作功能描述 openFiles; //打开文件 if (theFilesOpen){ //判定打开是否正确 determine the length of the file; //获取文件的长度 if (gotTheFileLength){ //判定已得到文件长度 allocate that much memory; //分配内存 if (gotEnoughMemory){ //内存分配成功 read the file into memory; //读文件 if (readFailed) errorCode=-1;//读取失败 else errorCode = -2; //读取成功 closeTheFile; //关闭文件 } else errorCode=-3; //内存分配不成功 } else errorCode=-4 ; //没有得到文件长度 } else errorCode=-5; //文件打开不正确 异常 程序发生异常时称为产生了一个异常事件,系统根据异常生成一个异常对象。 根据这个异常的种类,该对象可能由正在运行的方法生成,也可能由JVM生成。异常对象中包含了该异常必要的详细说明信息,包括所发生的异常事件的类型及异常发生时程序的运行状态。 生成的异常对象传递给Java运行时系统,运行时系统寻找相应的代码来处理这一异常。 我们把生成异常对象并把它提交给运行时系统的这一过程称为抛出(throw)一个异常。 异常 异常发生后,Java运行时系统从生成对象的代码块开始进行回溯,沿方法的调用栈逐层回溯寻找处理代码,并把异常对象交给该方法处理,这一过程称为捕获(catch)。如图所示: 异常处理方式示例 下面用异常处理方式重写例7-2。 try{ openTheFile; //打开文件 determine its size; //获取文件的长度 allocate that much memory; //分配内存 read-File; //读文件 closeTheFile; //关闭文件 } catch(fileopenFailed) { //文件打开失败的处理代码;} catch(sizeDeterm
您可能关注的文档
- 新Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 教学课件 张兴科 季昌武 项目五.ppt
- 新JavaScript程序设计基础教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 阮文江 第七章 对象编程1.ppt
- 新JavaScript程序设计基础教程 教学课件 曾海 第9章 CSS+DIV技术.ppt
- 新JavaScript脚本程序设计 教学课件 吴以欣 陈小宁 第3章 JavaScript常用内置对象.ppt
- 新Java编程与应用教程 教学课件 张莉 java_03.ppt
- 新Java编程与应用教程 教学课件 张莉 java_11.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 1_ 第7章 Java的图形与用户界面.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 第3章 类、类的继承和接口.ppt
- 新Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 段新娥 贾宗维 2_ chap9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 java9.ppt
最近下载
- 无人驾驶车辆轨迹规划技术研究与应用 .pdf VIP
- 2025广东清远市英德市市区学校选调教师117人笔试备考题库及答案解析.docx
- 2025广东清远市英德市市区学校选调教师117人笔试备考试题及答案解析.docx
- 南芯产品规格书SC8886.pdf
- 2024-2025学年初中道德与法治七年级全一册中华民族大团结(同步训练)试题合集.docx VIP
- 2024-2025学年初中道德与法治七年级全一册中华民族大团结(单元测试)试题合集.docx VIP
- 全国建筑设计劳动(工日)定额(2015年度版).pdf
- 2024-2025学年初中道德与法治初中中华民族大团结教学设计合集.docx
- 第五节 中国的河流和湖泊.ppt
- 蔡康永论说话之道(完整版).doc
文档评论(0)