java课件09.pptVIP

  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 The basic philosophy of Java is that “badly formed code will not be run.” Exception 总有一些问题是编译时刻预计不到的 Eg.ReadFfile 能否很好的处理运行时刻的异常是一个程序是否健康的标志 中国程序员普遍缺乏异常处理意识 用户都知道软件没有不出错的,所以要把运行错误报告给用户,而不是试图隐藏 传统错误处理 C库函数中不少都以特殊的返回值标示运行错误 如果你完全检查任何时候的错误,你的程序将变成无法阅读的梦魇 Eg.ReadFile.err.java Exception机制处理 使用异常机制,代码的读、写和调试变得清晰。它把处理错误的代码和正常的代码分开 Eg.ReadFile.exception.java Throw an exception throw new NullPointerException(); throw new NullPointerException(HERE! ); 异常发生时,你不能解决问题;所以必须扔出(throw)一个异常 一个异常对象被建立起来了 当前的运行路径被停止,异常对象被弹出(eject) 异常处理机制接手,开始寻找一个合适的地方继续执行(处理异常) Catch an exception Java的异常机制的好处就在于它使我们在一个地方专注于我们要解决的问题;而在另一个地方处理来自那部分代码的异常情况 try { // Code that might generate exceptions } catch(Type1 id1) { // Handle exceptions of Type1 } catch(Type2 id2) { // Handle exceptions of Type2 } // etc... Creating your own exceptions Eg.FileHandle.java; SimpleExceptionDemo.java 创建有带参数构造函数的异常类 Eg. FileHandle2.java; FullConstructors.java 创建有更多东西的异常类 Eg.FileHandle3.java; ExtraFeatures.java Match the exception 匹配异常不需要精确匹配 Eg.Humam.java Catching any exception 一个可以捕捉任何异常的捕捉器是一个捕捉基本类型异常的捕捉器 catch (Exception e) { System.err.println(Caught an exception); } Interface: Throwable String getMessage(?) String toString(?) 给出对象所属类的全名和message void printStackTrace(?) void printStackTrace(PrintStream) void printStackTrace(java.io.PrintWriter) Throwable fillInStackTrace( ) Eg. ExceptionMethods.java Rethrowing an exception catch( Exception e ) { throw e; } 关于fillInStackTrace( ): Eg. Rethrowing.java 也可以抛出一个与接到的异常不同的异常 Eg. RethrowNew.java Announce for exception 通知client programmer自己的方法中有可能抛出什么样的异常是一种文明的做法 void f() throws TooBig, TooSmall, OldStyle { //... } 如果你要从你的方法中抛出某种异常,你必须声明 但是你可以撒谎:声明你并不真正抛出的异常 Override of exception 当你override了一个方法,你只能声明和抛出不比它的父类版本中声明的异常多的异常 Eg.StormyInning.java finally 异常机制中一定会被执行的代码 Not throw Throw and catch Throw and not catch Eg.FinallyWorks.java Run-time exception if (t == null) throw new NullPointerException( ); Run-time exception不需要主动t

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档