第04章 java面向对象技术基础.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文档。上传文档
查看更多
4.16异常类——捕获异常try-catch-finally 4、finally 捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。一般是用来关闭文件或释放其他的系统资源。虽然finally作为try-catch-finally结构的一部分,但在程序是可选的,也就是说可以没有 finally语句。如果存在finally语句,不论try块中是否发生了异常,是否执行过catch 语句,都要执行finally语句。 另外,try-catch-finally可以嵌套。例4.33 4.16异常类——抛出异常 如果在一个方法中生成了一个异常,但是这一方法并不确切地知道该如何对这一异常事件进行处理,这时,该方法就应该声明抛弃异常,使得异常对象可以从调用栈向后传播,直到有合适的方法捕获它为止。  声明抛弃异常是在一个方法声明中的throws子句中指明的。例如:   public int read () throws IOException{   …… } throws子句中同时可以指明多个异常,之间由逗号隔开。例如: public static void main(String args[]) throws    IOException, IndexOutOfBoundsException { …… } 对于非运行时例外,如前例中的IOException等,程序中必须要作出处理,或者捕获,或者声明抛弃。而对于运行时例外,如前例中的ArithmeticException,IndexOutOfBoundsException,则可以不做处理。 4.16异常类 抛出异常就是产生异常对象的过程,首先要生成异常对象,异常或者由虚拟机生成,或者由某些类的实例生成,也可以在程序中生成。在方法中,抛出异常对象是通过throw语句实现的。   例如:   IOException e=new IOException();   throw e ; 可以抛出的异常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误: throw new String(throw anything); 自定义异常类必须是Throwable的直接或间接子类。 4.16异常类——创建用户异常类 如果 Java 提供的系统异常类型不能满足程序设计的需求,我们可以设计自己的异常类型。 从 Java 异常类的结构层次可以看出,Java 异常的公共父类为 Throwable 。在程序运行中可能出现两种问题:一种是由硬件系统或JVM导致的故障, Java 定义该故障为 Error 。这类问题用户程序不能够处理的。另外一种问题是程序运行错误,Java 定义为 Exception。这种情况下,可以通过程序设计的调整来实现异常处理。 因此,用户定义的异常类型必须是 Throwable 的直接或间接子类。Java 推荐用户的异常类型以 Exception 为直接父类。创建用户异常的方法如下: class UserException extends Exception{ UserException(){ super(); …… //其它语句 } } 例4.34 4.16异常类——创建用户异常类 我们在使用异常时,有以下几点建议需要注意: (1) 对于运行时例外,如果不能预测它何时发生,程序可以不做处理,而是让Java虚机去处理它。 (2) 如果程序可以预知运行时例外可能发生的地点和时间,则应该在程序中进行处理,而不应简单地把它交给运行时系统。 (3)在自定义异常类时,如果它所对应的异常事件通常总是在运行时产生的,而且不容易预测它将在何时、何处发生,则可以把它定义为运行时例外,否则应定义为非运行时例外。 4.17 Class类 1、获取类的有关信息 Class是java.lang包中的类,该类的实例用来封装对象运行时的状态。当一个类加载且创建对象时,和该类相关的一个类型为Class的对象就会自动创建。Class类本身不提供构造方法,因此不能使用new运算符和构造方法创建一个Class对象。任何对象调用getClass()方法都可以获得和该对象相关的一个Class对象。Class对象的方法如下: String getName()返回类的名字。 Constructor

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档