1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
异常处理 异常处理机制 当方法执行过程中出现错误而干扰了程序流程时,会抛出一个异常,即构造出一个异常类的对象。 异常类对象代表当前出现的一个具体异常,该对象封装了异常的有关信息。 异常分为系统定义异常和用户自定义异常。 异常抛出方式: 自动抛出(系统定义异常) 用throw语句抛出(用户定义异常) 方法中的异常处理: 捕获异常,就地解决,并使程序继续执行 。 将异常向外转移,即将异常抛出方法之外,由调用该方法的环境去处理。 异常类 例外 Exception类定义的是较轻的错误,你可以编写代码来处理这类错误,并继续程序的执行。 Exception原因: 打开的文件不存在。 网络连接中断。 操作数超过允许范围。 想要加载的类文件不存在。 试图通过空的引用型变量访问对象。 数组下标越界。 Error类定义的错误是致命性错误,一般会导致程序停止执行。 Exception类 构造函数 Exception() Exception(String 异常描述) 方法 String getMessage() 返回异常描述。 String toString() 返回异常对象详细信息。 void printStackTrace() 打印异常发生的路径,即引起异常的方法调用嵌套序列。 系统定义的异常类 ClassNotFoundException 未找到要加载的类 ArrayIndexOutOfBoundsException 数组越界使用 FileNotFoundException 未找到指定的文件或目录 IOException 输入、输出错误 NullPointerException 引用空的尚无内存空间的对象 系统定义的异常类 ArithmeticException 算术错误,如除数为0 InterruptedException 一线程在睡眠、等待或其他原因暂停时被其他线程打断 UnknownHostException 无法确定主机的IP地址 SecurityException 安全性错误,如Applet欲读写文件 MalformedURLException URL格式错误 用户定义的异常类 用户自定义异常主要用来处理用户程序中特定的逻辑运行错误。 定义异常类 class MyExp extends Exception { //或继承其他异常类 //定义新的属性 //重载构造函数 例: MyExp(String msg) { super(msg) } // 重载原方法,或定义新方法 } 抛出异常类 : throw 异常类对象 ; 例: throw new MyExp(“年龄超过规定”) ; 例: throw new Exception() ; 异常处理 警戒区:可能会引起异常的代码段 try{ 警戒区代码 //抛出例外 } catch(ExceptType e){ //捕获例外 例外处理代码 //异常处理 } 后续语句 若try块中出现异常,则控制转向下面的异常处理部分,然后执行后续语句。 若try块中没有异常,则try块执行完,控制转向后续语句。 多异常处理 try { . . . } //可处理多种异常 catch( 例外类1 e1) { . . . } catch( 例外类2 e2) { . . . } 匹配规则: 抛出对象与catch参数类型相同 抛出对象为catch参数类的子类 按先后顺序捕获(注意catch块书写时的排列顺序: 先具体、后一般),但只捕获一次。 异常转移 异常总是发生在方法执行过程中。 当异常不处理时会向方法外转移。 系统定义的异常自动向外转移。 用户自定义的异常要转移需要在方法头声明一下 String readData() throws MyExp {……………….. throw new MyExp(“年龄超过规定”); } finally语句结构 try{……...} finally{………} finally: 不论是否有例外抛出,均执行。 只有当try块中执行System.exit()时,会立即结束程序。 用处:用于非内存的系统资源的释放,如打开的文件、建立的网络连接等 * 异常 予定义异常 自定义异常 异常处理 异常转移 行 言 谢谢再见! Throwable类 Exception类 Error类 自定义异常类

文档评论(0)

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

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

1亿VIP精品文档

相关文档