java-异常处理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java的异常处理机制使得异常事件可以沿调用堆栈自动向上传播,沿着被调用的顺序往前寻找,只要找到符合该异常种类的异常处理程序,就交给这部分程序去处理。而不是C语言中通过函数的返回值来传播,这样可以传递更多的信息并且简化代码的编写。 小结 Method1 Method2 Method3 Read-file call call call try-catch 产生异常 throws throws throws Java通过面向对象的方法进行异常处理,把各种不同的异常事件进行分类,体现了良好的层次性,提供了良好的接口,这种机制对于具有动态运行特性的复杂程序提供了强有力的控制。 由于把异常事件当成对象来处理,利用类的层次性可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。当然,从另一方面来看,在捕获或声明异常时,要选取合适类型的异常类,注意异常的类层次,根据不同的情况使用一般或特殊的异常类。 应该根据具体的情况选择在何处处理异常。或者在方法内捕获并处理,或者用throws子句把它交给调用栈中上层的方法去处理。 小结 对非运行时异常必须捕获或声明。对运行时异常,若不能预测它何时发生,程序可不作处理,而是交给Java运行时系统来处理;若能预知它可能发生的地点和时间,则应在程序中处理,而不应简单地交给运行时系统。 异常可以人为地抛出,用throw new 语句。 异常可以是系统已经定义好的,也可以是用户自己定义的。用户自己定义的异常一定继承自Throwable或Exception类。 在自定义异常类时,如果它所对应的异常事件通常总是在运行时产生,而且不容易预测它将在何时何地发生,可以将它定义为运行时异常,否则应定义为非运行时异常。 应该使用finally语句为异常处理提供统一的出口。 小结 NCEPU 作业 1. 有一个表示日期的抽象类 abstract class Date { abstract boolean isValid( ); //判断日期是否合法 abstract void daysAfter(int days); //将调用对象改为days天后的日期 abstract int between(Date d); //计算日期对象与d之间相隔的天数 } NCEPU 作业 1) 声明一个类DateD,继承Date类, (i) 定义成员变量:private int year, month, day; (ii) 定义构造方法:DateD(int y, int m, int d), DateD (DateD d) 和 DateD() (iii) 定义成员方法:void printDate() (iv) 实现所有的抽象方法 NCEPU 作业 fairyzcy@ 构造一个类Date来描述日期,并构造一个异常类WrongDate 要求: 在Date类中包括表示年、月、日的三个整型的成员变量,要求遵循封装原则 在Date类中仅定义一个构造方法,包含三个用来表示年、月、日的整型参数 NCEPU 作业 fairyzcy@ 在构造方法中,当构造的日期无效时可抛出一个WrongDate对象 (提示:当表示月的变量不在1~12之间,或者表示日的变量超过了本月的最大天数时,视该日期无效) WrongDate异常类的对象可以表示错误的日期,格式为:2004/2/31(提示:通过toString()方法设置异常类对象的成员变量) 在另一个类MyDate的main方法中,创建一个Date类的对象d,同时捕获异常 * 判断文件大小时,有可能是一个网上共享文件,这时网络的另外一端还在不断的送数据过来,你无法判断文件的大小 32位的windows操作系统每个进程所能得到的最大操作空间是4G(实际上4G都不到,因为系统还要用掉些空间) 读文件时,如果U盘被人不小心拔下。。如果再早些的软驱的话,一按按钮就弹出了,Linux的软驱是有保护的,软驱按钮是有锁的,有保护的。 关闭时,文件最后被访问时间等信息要写回,如果此时停电。。 每个时刻都有危机, 对危机处理的好坏是这个程序是否强壮的标志,通常事务逻辑只占三分之一,剩下三分之二的时间都在处理万一我的程序遇到问题我该如何处理。 * 程序出错可以,但是你出完错之后是不是应该给用户一个友好的提示,你不能说你的程序出错了,列出了一大堆程序员专业的术语(比如 IOException、 ArrayIndexOutOfBoundsException ),Exception第几行,什么样的Exception,还Java.lang……,用户拿到你的程序一运行,出了一点错都没法给你报告,就像医生开的单子

文档评论(0)

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

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

1亿VIP精品文档

相关文档