- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 第6章 异常处理 错误是编程中不可避免和必须要处理的问题。编程人员和编程工具处理错误的能力在很大程度上影响着编程工作的效率和质量。如果程序在运行过程中发生了异常,那么系统就会以相应的错误消息终止程序的执行。如果因为程序的错误或者某些外部因素导致系统终止用户丢失数据,那程序就无法满足用户的需求。在程序发生异常时,程序应该能做到:通知用户程序出现了一个错误;保存全部工作;允许用户安全地退出程序。 对于异常的情况,例如可能造成程序崩溃的错误输入,Java使用“异常处理”的错误捕获机制来进行处理。 本章要点 异常和异常类; 检查和非检查异常; 异常处理; 异常处理技巧; 创建自己的异常类; 6.1 ?异常和异常类 异常是指发生在正常情况以外的事件,如用户输入错误、除数为零、需要的文件不存在、文件打不开、数组下标越界、内存不足等。程序在运行过程中发生这样或那样的错误及异常是不可避免的。然而,一个好的应用程序,除了应具备用户要求的功能外,还应具备能预见程序执行过程中可能产生的各种异常的能力,并把处理异常的功能包括在客户程序中。 计算机系统对于异常的处理通常有两种方法: 一是计算机系统本身直接检测程序中的错误,遇到错误时终止程序运行。 二是由程序员在程序设计中加入处理异常的功能。它又可以进一步区分为没有异常处理机制的程序设计语言中的异常处理和有异常处理机制的程序设计语言中的异常处理两种。 6.1 ?异常和异常类 Java语言的特色之一是异常处理机制(Exception Handling)。Java语言采用面向对象的异常处理机制。通过异常处理机制,可以预防错误的程序代码或系统错误所造成的不可预期的结果发生,并且当这些不可预期的错误发生时,异常处理机制会尝试恢复异常发生前的状态或对这些错误结果做一些善后处理。 Java对异常的处理是面向对象的。在Java中,预定义了很多异常类,每个异常类都代表了相应的错误,当产生异常时,如果存在一个被异常类与此异常相对应,系统将自动生成一个异常类对象。 所有的异常类都是从Throwable类派生而来的。Throwable类被包含在java.lang包中,图XXX显示了Java异常类的层次结构。 6.1 ?异常和异常类 6.1 ?异常和异常类 Throwable类不能直接使用,在Throwable类中定义了方法来检索与异常相关的错误信息,并且打印显示异常发生的栈跟踪信息。它包含有两个直接子类:Exception类和Error类。 Error类及其所有子类用来表示严重的运行错误,比如内存溢出,一般无法在程序中进行恢复和处理。因此,我们不会用到它。Exception类及其所有子类定义了所有能够被程序恢复和处理的标准异常,在编程中,我们要处理的异常主要是这一类。Exception类拥有两个构造函数:public Exception();和public Exception(String s)。其中第二个构造函数中的字符串参数s表示对该异常的描述说明。 6.2 ?已检查和未检查的异常 Java语言规范将任何Error的子类以及RuntimeException的子类都称为未检查(unchecked)异常。而其他的异常都被称为已检查(checked)异常。 在Java程序中,无论何时使用java.io包中类的输入或输出方法,我们都会使用throws IOException子句。 IOException是已检查异常,由于System.in.read方法可能会引发IOException异常,因而抛出的是已检查异常。当编译器遇到这些方法调用时,会检查程序是否处理IOException,或通过抛出异常来报告。启用编译器检查类似IOException或其他类型的已检查异常,可以帮助客户程序减少不能正确处理的异常的数量。到目前为止,由于前面章节的程序不要求处理IOException或其他类型的已检查异常,所以程序通过抛出它们来声明检查异常。 6.2 ?已检查和未检查的异常 编译器不检查未检查异常,所以程序无须使用throws子句声明它们,也不需要在程序中提供代码来处理它们。属于RuntimeException类的子类的异常是未检查异常。如果程序中不提供代码处理未检查异常,那就由Java的默认异常处理程序来处理异常。 在方法头重,throws后面列出了方法可能抛出的各类异常。throws 子句的语法是: throws ExceptionType1,ExceptionType2… 其中的ExceptionType1,Exceptio
您可能关注的文档
- 新Java程序设计 教学课件 刘卫国 第3章 算法与程序控制结构.ppt
- 新Java程序设计 教学课件 刘卫国 第4章 Java类与对象.ppt
- 新Java程序设计 教学课件 刘卫国 第5章 封装继承与多态.ppt
- 新Java程序设计 教学课件 刘卫国 第6章 异常处理.ppt
- 新Java程序设计 教学课件 刘卫国 第7章 Java线程.ppt
- 新Java程序设计 教学课件 刘卫国 第8章 网络程序设计.ppt
- 新Java程序设计 教学课件 刘卫国 第9章 数据库应用开发.ppt
- 新Java程序设计 教学课件 刘卫国 第10章 Java图形用户界面设计.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第1章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第2章.ppt
文档评论(0)