高级Java编程技术 第五讲 异常处理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
异常(Exception) 总有一些问题是编译时刻预计不到的readfile 能否很好地处理运行时刻的异常情况是一个程序健康的标志 程序员普遍缺乏异常处理意识 用户都知道软件没有不出错的,所以要把运行错误报告给用户,而不是试图隐藏 程序错误、发现时刻及错误处理原则 语法错误 违反语法规范的错误称为语法错,在编译时发现。 比如标识符没有声明,表达式中运算符与操作数不兼容等等。 语义错误 在语义上存在错误,则称为语义错,运行时才能被发现。 输入数据格式错误,除数为0,数组元素越界等等 逻辑错误 系统无法发现逻辑错误。 传统错误处理 C函数库中不少都以特殊的返回值标志运行错误 但是如果你完全检查任何时刻的错误,你的代码就会变成无法阅读的梦魇。 readFile.err Exception机制处理 使用异常机制,读、写和调试代码变得清晰。它把处理错误的代码和正常的代码分开。 ReadFile.exception Java的错误和异常 Java语言是安全的 Java语言提供严密的语法规则。 Java在编译和运行时严格检查错误。 Java提供异常处理机制。 Java提供内存自动管理方式。 错误与异常 错误(error)指程序运行时遇到的硬件或操作系统的错误,程序本身不能处理。 异常(exception)指在硬件和操作系统正常时,程序遇到的运行错。对于程序是非致命的,程序可以调整运行方向,继续运行。 Java程序发现错误和异常 错误类和异常类 Error类是错误类,由java虚拟机生成并抛出。 比如说内存溢出动态链接失败; 虚拟机错误。 通常Java程序不应该捕获这类错误。 Exception类,异常类,程序中作出处理 运行时异常 继承于RuntimeException。Java编译器允许程序不对它们做出处理。 非运行时异常 除了运行时异常之外的其他由Exception继承来的异常类。Java编译器要求程序必须捕获或者声明抛弃这种异常。 异常体系结构 程序对错误与异常的三种处理方式 程序不能处理错误 程序应避免而不捕获的异常,如除数为0、数组下标越界等。设计代码的时候应该预先判断,避免异常发生 必须捕获的异常,程序无法预见,应该进行捕获并设计好异常处理代码,从而保证程序的正常运行。 Java的异常处理 5.2.1 异常类说明 5.2.2 异常处理语句 5.2.3 抛出异常 5.2.4 自定义异常类 异常类说明 Exception异常类 public class Throwable implements Serializable { public Throwable() public Throwable(String message) public String getMessage() //获得异常信息 public String toString() //获得异常对象的描述信息 public void printStackTrace() //显示异常栈跟踪信息 } public class Exception extends Throwable { public Exception() public Exception(String s) } 常见异常及其用途 自定义异常类 java异常处理语句 异常处理语句语法 try { 语句1 //存在潜在异常的代码 } catch (异常类 异常对象) { 语句2 //捕获到异常并进行处理的代码 } finally { 语句3 //最后必须执行的代码,无论是否捕获到异常 } Case:Try2.java 使用throw关键字主动抛出异常 异常可以由Java虚拟机抛出,也可以由程序主动抛出。 throw 异常对象 throw new ArithmeticException(); throw new ArithmeticExceptionn(HERE!); Case:Person2.java 在方法定义中声明抛出异常的throws子句 通知客户程序员自己写的方法中可能抛出什么样的异常是一种文明的做法。 void f() throws tooBig, tooSmall, oldStyle { ??? //??? Body of f() } 如果你要从你的方法中抛出某种异常,你必须声明。 但是你可以撒谎声明你并不真正抛出的异常。 方法重写中的异常声明 当你override一个方法,你只能申明和抛出不比它的父类版本中申明的异常多的异常。 Case

文档评论(0)

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

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

1亿VIP精品文档

相关文档