- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 系统定义的运行异常 系统定义的运行异常 异常对应的系统运行错误 ClassNotFoundException 未找到欲装载使用的类 ArrayIndexOutOfBoundsException 数组越界使用 FileNotFoundException 未找到指定的文件可目录 IOException 输入输出错误 NullPointerException 引用空的尚无内存空间的对象 ArithmeticException 算术错误,如除数为0 InterruptedException 线程在睡眠、等待或因其他原因暂停时被其他线程打断 UnknownHostException 无法确定主机的IP地址 SecurityException 安全性错误,如Applet欲读写文件 MalformedURLException URL格式错误 * 用户自定义的异常 声明一个新的异常类,扩展Exception类或其他某个已经存在的系统异常类或其他用户异常类; 为新的异常类定义属性和方法,或重载父类的属性的和方法,使这些属性和方法能够体现该类所对应的错误的信息。 * 异常的抛出 Java应用程序在运行时如果出现了一个可识别的错误,就会产生一个与该错误相对应的异常类的对象,这个对象包含了异常的类型和错误出现时程序所处的状态信息,这个异常对象首先被交给Java虚拟机,由虚拟机来寻找具体的异常处理者。在Java中把产生异常对象并将其交给Java虚机的过程称为称为异常的抛出。 * 系统自动抛出的异常 所有系统定义的运行异常都可以由系统自动抛出。例如以非法的算术操作引发的算术异常,这时系统抛出已定义好了的异常类ArithmeticException的对象。 * 语句抛出的异常 语句抛出的异常是借助throw语句定义何种情况是产生了此种异常对应的错误。 用户程序自定义的异常不可能依靠系统自动抛出,必须使用throw语句抛出这个异常类的新对象。系统定义的运行异常也可以由throw语句抛出。 到目前为止,你只是获取了被Java运行时系统引发的异常。然而,程序可以用throw语句引发明确的异常。Throw语句的通常形式如下: throw ThrowableInstance; 这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象。简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常。有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建。 程序执行在throw语句之后立即停止;后面的任何语句不被执行。最紧紧包围的try块用来检查它是否含有一个与异常类型匹配的catch语句。如果发现了匹配的块,控制转向该语句;如果没有发现,次包围的try块来检查,以此类推。如果没有发现匹配的catch块,默认异常处理程序中断程序的执行并且打印堆 栈轨迹。 使用throw语句 注意点: 一般这种抛出异常的语句应该被定义为在满足一定条件时执行,例如把throw语句放在if语句的if分支中,只有当条件得到满足,即用户定义的逻辑错误发生时才执行。 含有throw语句的方法。应该在方法头定义中增加如下部分: throws异常类名列表 这样做主要是为了通知所有欲调用此方法的方法。由于该方法包含throw语句,所以要准备接受和处理它在运行过程中可能会抛出的异常。如果方法中的throw语句不止一个,方法头的异常类名列表也不止一个,应该包含所有可能产生的异常。 Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象。当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被引发(throw)。该方法可以选择自己处理异常或传递该异常。两种情况下,该异常被捕获(caught)并处理。异常可能是由Java运行时系统产生,或者是由你的手工代码产生。被Java引发的异常与违反语言规范或超出Java执行环境限制的基本错误有关。手工编码产生的异常基本上用于报告方法调用程序的出错状况。 尽管Java运行时系统提供的默认异常处理程序对于调试是很有用的,但通常你希望自己处理异常。这样做有两个好处。第一,它允许你修正错误。第二,它防止程序自动终止。大多数用户对于在程序终止 运行和在无论何时错误发生都会打印堆栈轨迹感到很烦恼(至少可以这么说)。幸运的是,这很容易避免。 为防止和处理一个运行时错误,只需要把你所要监控的代码放进一个try块就可以了。紧跟着try块的后面包括一个说明你希望捕获错误类型的catch子句 一
文档评论(0)