- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章-异常处理new
第九章 9.1 异常处理机制 Java使用异常对程序给出一个统一和相对简单的抛出和处理错误的机制。如果一个方法本身能抛出异常,调用者可以捕获异常使之得到处理;也可以回避异常,这时异常将在调用的堆栈中向下传递,直到被处理。 异常 Java把程序运算中可能遇到的错误分为两类: 一类是非致命性的,通过某种修正后程序还能继续执行。这类错误称作异常。 另一类是致命性的,即程序遇到了非常严重的不正常状态,不能简单地恢复执行,这就是错误。 Java提供了异常处理机制,在Exception类中定义了程序产生异常的条件。 对待异常通常并不是简单地结束程序,而是转去执行某段特殊代码处理这个异常,设法恢复程序继续执行。 Java实现了C++风格的异常。 当程序中发生异常时,称程序产生了一个异常事件,相应地生成异常对象。 生成的异常对象传递给Java运行时系统。 异常产生和提交的这一过程称为抛出。 异常发生时,Java运行时系统从生成对象的代码块开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理,这一过程称为捕获。 所有的包中都定义了异常类和错误类。 Exception类是所有异常的父类, Exception 类对象由应用程序处理或抛出。 Error类是所有错误的父类,表示很难恢复的错误,如内存越界,一般不期望用户程序来处理,即使程序员有能力处理这种错误,也还是交给系统处理为好。 Error 类对象由 Java 虚拟机生成并抛出。 这两个类同时又是Throwable的子类。 异常和错误类的层次结构如图所示: Exception子类的继承关系 Exception ClassNotFoundException ClassNotSupportedException IllegalAccessException InstantiationException InterruptedException NoSuchMethodException RuntimeException ArithmeticException:算术运算产生的异常 ArrayStoreException:存入数组的内容数据类型不一致所产生 ClassCastException:类对象强迫转换造成不当类对象所产生 IllegalArgumentException:程序调用时返回错误自变量的数据类型 IllegalThreadStateException NumberFormatException Exception子类(续) IllegalMonitorStateException IndexOutOfBoundsException:索引超出范围所产生 ArrayIndexOutOfBoundsException StringIndexOutOfBoundsException NegativeArraySizeException:负值索引所产生 NullPointerException:对象引用参考值为null所产生 SecurityException :违反安全所产生的异常 公共异常 Java预定义了一些常见异常,最常用到的有如下几个。 (1)ArithmeticException 整数除法中,如果除数为0,则发生该类异常,如: int i = 12 / 0; (2) NullPointerException 如果一个对象还没有实例化,那么访问该对象或调用它的方法将导致NullPointerException异常 如: image im [ ] = new image [4]; System.out.println(im[0].toString()) (3) NegativeArraySizeException 数组的元素个数应是一个大于等于0的整数。创建数组时,如果元素个数是个负数,则会引发NegativeArraySizeException异常。 (4) ArrayIndexOutOfBoundsExceptionJava 把数组看作是对象,并用length变量记录数组的大小。访问数组元素时,运行时环境根据length值检查下标的大小。如果数组下标越界,则将导致ArrayIndexOutOfBoundsException异常。 (5) SecurityException 该类异常一般在浏览器内抛出。 若Applet试图进行下述操作,则由SecurityManager类抛出此异常: 访问本地文件。 打开一个套接口,而不是返回到提供Applet的主机。 在运行时环境中运行另一个程序。 除此之外,常见异常还有: ArrayStoreException: 程序试图存取数组中错误的数据类型。
文档评论(0)