08.异常处理.pptx

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08.异常处理

第八章:异常处理Java程序设计内部培训讲义zjh@58.com8.1 异常的概念8.2 异常的分类8.2.1 运行时异常8.2.2 捕获异常8.2.3 声明异常8.2.4 抛出异常8.2.5 异常子类8.7 总结8.1 异常的概念 在Java中,提供了错误捕捉和处理机制,即异常处理机制。在程序运行过程中发生错误时,Java允许其不按照正常路径完成任务,由发现错误的方法抛出封装了错误信息的对象(异常)到其调用程序,发出已经发生问题的信号,然后立即退出;而且,程序并不在调用该方法的代码处继续执行,而是由异常处理机制开始搜索一个能够处理这种特定错误情况的异常处理器。什么是异常? 异常实际上是程序中错误导致中断了正常的指令流的一种事件.如除0溢出,数组越界,文件找不到等。这类事件的发生将阻止程序的正常运行,为了争强程序的鲁棒性,计算机程序必须考虑程序运行时可能发生的异常时间及做出相应的处理。Java通过面向对象的方法来处理异常,即在方法运行中,如有异常发生,该方法生成代表该异常的一个对象并交给运行时系统,系统寻找相应的代码来处理这一异常。和传统的方法比较异常的优点:1.把错误代码从常规代码中分离出来2. 把错误传播给调用堆栈3. 按错误类型和 错误差别分组4. 系统提供了对于一些无法预测的错误的捕获和处理5. 克服了传统方法的错误信息有限的问题以常规方法处理错误 openFiles; if (theFilesOpen) { determine the lenth of the file; if (gotTheFileLength){ allocate that much memory; if (gotEnoughMemory) { read the file into memory; if (readFailed) errorCode=-1; else errorCode=-2; }else errorCode=-3; }else errorCode=-4 ; }else errorCode=-5; 没有处理错误的程序: read-file { openTheFile; determine its size; allocate that much memory; closeTheFile; }观察前面的程序你会发现大部分精力花在出错处理上了.只把能够想到的错误考虑到,对以外的情况无法处理程序可读性差出错返回信息量太少。用异常的形式处理错误//read-File; try { openTheFile; determine its size; allocate that much memory; closeTheFile; } catch(fileopenFailed) { dosomething; } catch(sizeDetermineFailed) {dosomething;} catch(memoryAllocateFailed){ dosomething;} catch(readFailed){ dosomething;} catch(fileCloseFailed) { dosomething; }8.2处理异常的种类异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是例外.Error:由Java虚拟机生成并抛出,Java程序不做处理.Runtime Exception(被0除等系统错误,数组下标超范围):由系统检测, 用户的Java 程序可不做处理,系统将它们交给缺省的异常处理程序.Exception(程序中的问题,可预知的): Java编译器要求Java程序必须捕获或声明所有的非运行时异常throw:用户自己产生异常异常的分类Throwable用户自己产生的异常ExceptionError要处理RuntimeException不做处理由用户捕获或声明并处理缺省的异常处理程序8.2.1 运行时异常Throwable类派生出两个分支:Error和Exception。Error类被认为是不能恢复的严重错误,如系统内部错误和资源耗尽错误等。不应该抛出这种类型的错误,而是让程序中断。Exception类定义可能遇到的轻微错误,分为派生自RuntimeException类的异常和非派生自RuntimeException类的异常。这时,可以写代码来处理异常并继续程序执行,而不是让程序中断。区分RuntimeException和非RuntimeException的规则是:编程错误导致RuntimeException,如被零除、数组越界访问、空指针访问等;而其他异常则是由于意外情况而发生的,如试图读取文件结尾以后的数据、试图打开错误的URL、试图根据并不代表已存在类的字符串

您可能关注的文档

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档