java_l11_异常应用补充.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文档。上传文档
查看更多
java_l11_异常应用补充

北京理工大学珠海学院 通知 1.下次课在MB403做实验4; 2.实验后抽出一点时间进行第2次过程考核。 北京理工大学珠海学院 Java程序设计 上次课内容归纳 程序在执行过程中,突然中断了,称为发生运行时错误。运行时错误分: 因为系统软件原因造成的,称为内部错误,用Error类及其子类表示,严重但罕见; 因为应用软件不周密造成的,称为运行时异常,用RuntimeException类及其子类表示,常见,可以通过修改代码不发生; 因外部系统、硬件局限或故障、I/O等造成的。 北京理工大学珠海学院 上次课内容归纳 以上Error和RuntimeException类及其子类所代表的异常,称为非检验(unchecked)异常 而除此之外的异常(由于外部原因造成)称为检验(checked)异常。 检验异常是无法避免、不应掩盖的,需要老实处理。 北京理工大学珠海学院 上次课内容归纳 代码中捕获异常的结构: try{ } catch(异常类 变量){ //可有多个 }finally{ //最多1个 } 有catch时可以无finally; 有finally时可以无catch。 北京理工大学珠海学院 上次课内容归纳 try块:执行到爆发异常的语句就突然中断(不再往下执行,跳到catch块,最后跳到finally块), catch块:抓住JVM生成的异常对象。要么显示异常信息通知用户,要么重新抛出异常通知上层代码 finally块:做善后处理工作。重要! 北京理工大学珠海学院 上次课内容归纳 当存在多个catch块时,应按从具体到抽象的先后顺序捕获。 如果方法中可能抛出检验异常,必须在方法头宣告,这是语法要求。 非检验异常无必要宣告。 系统异常类已很多,也可以自定义。 北京理工大学珠海学院 L11_异常应用补充 目标:掌握自定义异常类的方法,了解在实际编程中的应用。 内容: 检验异常宣告举例 自定义异常类 抛出自定义异常对象 clone()方法重写 北京理工大学珠海学院 检验异常宣告举例 除了RuntimException和Error类及其派生类之外的异常类,为检验异常。 如果一个方法中有可能抛出检验异常,要在方法头宣告。 有可能是指哪两种情况? 代码举例:实现拷贝文件功能 北京理工大学珠海学院 自定义异常类 异常类的作用是封装异常信息。通过throw语句抛出异常对象,以通知方法的调用程序。 如果系统已有异常类型不能很好地封装应用程序出现的异常信息,可以自己定义更合适的异常类 北京理工大学珠海学院 自定义异常类 自定义异常类必须继承自Throwable或其子类。一般是Exception或RuntimeException。 如果直接继承自Exception类,则自定义异常类属于检验异常;如果继承自RuntimeException类,则自定义异常为非检验异常。 北京理工大学珠海学院 自定义异常类 查看Java API文档,可以看到Exception和RuntimeException类成员相近。 自定义异常类的目的是为了包含特殊的异常信息,一般可以通过构造方法传入需要包含的特殊信息。 北京理工大学珠海学院 自定义异常类 基本上只要写好构造方法,而其他方法通过继承获得即可。 举例:成绩设置为负数的异常 北京理工大学珠海学院 抛出自定义异常对象 传统程序中,一个方法如果接收到不合适的参数,需要返回一个异常代码给调用方。这就要求方法有返回值,同时对返回值含义要加以定义 有了异常这种机制,当方法接收到无法处理的参数时,可以中止当前程序,抛出异常通知调用程序。 北京理工大学珠海学院 抛出自定义异常对象 另一种在程序中抛出异常的情况是,在较低层的代码中捕获到了异常,但因为没有人机界面,无法直接显示异常,只能重新向上层代码抛出异常,让上层代码处理。 北京理工大学珠海学院 抛出自定义异常对象 使用throw关键字,后面必须是一个Throwable的派生类实例。 应用举例:学生管理中试图设置分数为负数时抛出异常 北京理工大学珠海学院 clone()方法重写 如果一个类要支持实例的克隆,必须重写继承自祖宗Object的clone()方法。而且必须申明为实现了Cloneable接口。 Cloneable接口中没有任何方法,只是一个标志。这种接口称为标记型接口。 北京理工大学珠海学院 clone()方法重写 在重写clone方法时,往往需要调用Object类的clone()方法。由于该方法宣告了CloneOperationNotSupportedException,而该异常为检验异常,故重写的方法也需要宣告。宣告异常要在方法头使用throws关键字。 北京理工大学珠海学院 clone()方法重写 代码举例:为Circle类重写clone方法; 北京理

文档评论(0)

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

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

1亿VIP精品文档

相关文档