- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
06、异常及垃圾收集
中关村国际软件人才教育联盟 Version 3.0 中关村国际软件人才教育联盟 * 异常及垃圾收集 第五讲 * 回顾 类中的静态成员属于类。 final 修饰符可应用于类、方法及变量。 定义抽象类的目的是提供可由其子类共享的一般形式。 接口就是需要由其他类实现的行为模板。 访问控制级别:public、protected、缺省、private 封装类就是封装基本数据类型的类 。 内部类指嵌入外部类内的类。 * 目标 了解异常的定义 了解异常的分类 掌握 try、catch 及 finally 语句的用法 掌握throw、throws子句的用法 掌握如何定义自己的异常 了解 Java 的垃圾收集机制 * 什么是异常 运行时发生的错误称为异常。处理这些异常就称为异常处理。 一旦引发异常,程序将突然中止,且控制将返回操作系统。 发生异常后此前分配的所有资源都将保留在相同的状态,这将导致资源漏洞。 * Java异常处理基础 Java异常处理机制采用一个统一及相对简单的抛出及处理错误的机制。如果一个方法本身能引发异常,当所调用的方法出现异常时,调用者可以捕获异常使之得到处理;也可以回避异常,这时异常将在调用的堆栈中向下传递,直到被处理。 * 异常体系结构 所有异常类型都是 内置类Throwable的子类 用于Java运行时系统 来显示及运行时系 统本身有关的错误 用于用户程序可能 捕获的异常,也是用来创建用户异常类型子类的类。 Error类对象由Java虚拟机生成并抛出; Exception类对象由应用程序处理或抛出。 * 常见异常及其用途 2-1 异常 说明 RuntimeException java.lang包中多数异常的基类 ArithmeticException 算术错误,如除以 0 IllegalArgumentException 方法收到非法参数 ArrayIndexOutOfBoundsException 数组下标出界 NullPointerException 试图访问 null 对象引用 SecurityException 试图违反安全性 ClassNotFoundException 不能加载请求的类 * 常见的异常及其用途 2-2 异常 说明 AWTException AWT 中的异常 IOException I/O 异常的根类 FileNotFoundException 不能找到文件 EOFException 文件结束 IllegalAccessException 对类的访问被拒绝 NoSuchMethodException 请求的方法不存在 InterruptedException 线程中断 * 异常处理模型 由五个关键字 try、catch、throw、throws 及 finally 处理。 Java 中可用于处理异常的两种方式: 自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。 回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。 * try - catch 块示例 public class ExceptionDemo { ? public static void main(String args[]) { try { int c= calculate(9,0); System.out.println(c); } catch (Exception e) { System.err.println(发生异常: + e.toString()); e.printStackTrace(); } } ? static int calculate(int a, int b) { int c = a/b; return c; } } 调用函数calculate, 将引发一个异常 在catch块中处理异常 输出 结果 * 多个 catch 块 单个代码片段可能会引起多个错误。 可提供多个 catch 块分别处理各种异常类型。 . . . try{ } catch(ArrayIndexOutOfBoundsException e){ } catch(Exception e) { } ... ArrayIndexOutOfBoundsException类为 Exception 类的子类,但是如果异常 属于ArrayIndexOutOfBoundsException类将执行第一个 catch 块,之后控制 将转向try/catch块之后的语句,所以始终不会执行第二个 catch 块。 * 多个 c
文档评论(0)