收藏 分享(赏)

5.异常与垃圾回收.ppt

上传人:yjrm16270 文档编号:12285812 上传时间:2021-12-10 格式:PPT 页数:25 大小:316.50KB
下载 相关 举报
5.异常与垃圾回收.ppt_第1页
第1页 / 共25页
5.异常与垃圾回收.ppt_第2页
第2页 / 共25页
5.异常与垃圾回收.ppt_第3页
第3页 / 共25页
5.异常与垃圾回收.ppt_第4页
第4页 / 共25页
5.异常与垃圾回收.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、异常和垃圾收集 第五章 2 回顾 Java基本类是作为AWT的扩展而开发的Swing是JFC下的一组类 提供轻量级可视化组件 可用于创建美观的GUISwing容器有两类 顶级容器 中间容器Swing标签既可以显示文本也可以显示图像Swing文本组件Swing中用于选择性输入的常用组件菜单是GUI中非常有用的一部分 目标 了解异常的定义了解异常的分类掌握try catch和finally语句的用法掌握throw throws子句的用法掌握如何定义自己的异常了解Java的垃圾收集机制 什么是异常 运行时发生的错误称为异常 处理这些异常就称为异常处理 一旦引发异常 程序将突然中止 且控制将返回操作系

2、统 发生异常后此前分配的所有资源都将保留在相同的状态 这将导致资源漏洞 Java异常处理基础 Java异常处理机制采用一个统一和相对简单的抛出和处理错误的机制 如果一个方法本身能引发异常 当所调用的方法出现异常时 调用者可以捕获异常使之得到处理 也可以回避异常 这时异常将在调用的堆栈中向下传递 直到被处理 异常体系结构 所有异常类型都是内置类Throwable的子类 用于Java运行时系统来显示与运行时系统本身有关的错误 用于用户程序可能捕获的异常 也是用来创建用户异常类型子类的类 Error类对象由Java虚拟机生成并抛出 Exception类对象由应用程序处理或抛出 常见异常及其用途2 1

3、 常见的异常及其用途2 2 异常处理模型 由五个关键字try catch throw throws和finally处理 Java中可用于处理异常的两种方式 自行处理 可能引发异常的语句封入在try块内 而处理异常的相应语句则封入在catch块内 回避异常 在方法声明中包含throws子句 通知潜在调用者 如果发生了异常 必须由调用者处理 try catch块示例 publicclassExceptionDemo publicstaticvoidmain Stringargs try intc calculate 9 0 System out println c catch Exceptione

4、 System err println 发生异常 e toString e printStackTrace staticintcalculate inta intb intc a b returnc 调用函数calculate 将引发一个异常 在catch块中处理异常 输出结果 多个catch块 单个代码片段可能会引起多个错误 可提供多个catch块分别处理各种异常类型 try catch ArrayIndexOutOfBoundsExceptione catch Exceptione ArrayIndexOutOfBoundsException类为Exception类的子类 但是如果异常属于

5、ArrayIndexOutOfBoundsException类将执行第一个catch块 之后控制将转向try catch块之后的语句 所以始终不会执行第二个catch块 多个catch块示例 classCatch22 publicstaticvoidmain Stringargs try Stringnum args 0 intnumValue Integer parseInt num System out println 平方为 numValue numValue catch ArrayIndexOutOfBoundsExceptionne System out println 未提供任何参

6、数 catch NumberFormatExceptionnb System out println 不是数字 嵌套的try catch块 有时 块的一部分引起一个错误 而整个块可能又引起另一个错误 在此情况下 需要将一个异常处理程序嵌套到另一个中 在使用嵌套的try块时 将先执行内部try块 如果没有遇到匹配的catch块 则将检查外部try块的catch块 finally块 确保了在出现异常时所有清除工作都将得到处理与try块一起使用无论是否出现异常 finally块都将运行 finally块示例 classFinallyDemo intno1 no2 FinallyDemo String

7、args try no1 Integer parseInt args 0 no2 Integer parseInt args 1 System out println 相除结果为 no1 no2 catch ArithmeticExceptioni System out println 不能除以0 finally System out println Finally已执行 publicstaticvoidmain Stringargs newFinallyDemo args 使用throw 异常是通过关键字throw抛出 程序可以用throw语句引发明确的异常 如 try if flag 0

8、thrownewNullPointerException throw语句的操作数一定是Throwable类类型或Throwable子类类型的一个对象 使用throws 如果一个方法可能导致一个异常但不处理它 此时要求在方法声明中包含throws子句 通知潜在调用者 如果发生了异常 由调用者处理 一个throws子句列举了一个方法可能引发的所有异常类型 这对于除Error或RuntimeException及它们子类以外类型的所有异常是必要的 使用throws示例 classThrowsDemo staticvoidthrowOne throwsIllegalAccessException Sys

9、tem out println 在throwOne中 thrownewIllegalAccessException 非法访问异常 publicstaticvoidmain Stringargs try throwOne catch IllegalAccessExceptione System out println 捕获 e 在该方法中没有处理异常 只是声明可能引发的异常 在throwOne方法的调用函数中捕获并处理异常 用户自定义的异常 内置异常不可能始终足以捕获所有错误 因此需要用户自定义的异常类用户自定义的异常类应为Exception类 或者Exception类的子类 的子类创建的任何用

10、户自定义的异常类都可以获得Throwable类定义的方法 classArraySizeExceptionextendsNegativeArraySizeException ArraySizeException super 您传递的是非法的数组大小 该类是Exception的子类 使用用户自定义的异常示例 classUserExceptionDemo intsize array UserExceptionDemo ints size s try checkSize catch ArraySizeExceptione System out println e voidcheckSize throw

11、sArraySizeException if size 0 thrownewArraySizeException array newint size for inti 0 i size i array i i 1 System out print array i publicstaticvoidmain Stringarg newUserExceptionDemo Integer parseInt arg 0 垃圾收集2 1 垃圾收集是可将分配给对象但不再使用的内存回收或释放的过程Java将自动释放不再使用的内存如果一个对象没有指向它的引用或将其赋值为null 则此对象将适于进行垃圾收集 垃圾

12、收集2 2 垃圾收集器将作为优先级低的单独线程运行可通过下列方式关闭应用程序中的垃圾收集java noasyncgc 如果关闭了垃圾收集 程序极有可能会因为内存在某个时刻耗尽而失败 使用finalize方法 Java提供了一种与C 语言中的析构器相似的方式 可用于在控制返回操作系统前完成清除过程如果存在finalize 它将在垃圾收集前被执行一次 而且每个对象仅执行一次protectedvoidfinalize throwsThrowable可以建议垃圾收集 但并不能保证它何时会发生 总结2 1 运行时发生的错误称为异常 必须捕获引发的每个异常 否则应用程序不会正常中止 异常处理允许在一个地方集中进行错误处理 这使得可以创建功能强大且健壮的代码 Java使用try和catch块来处理异常 try块中的语句引发异常 而catch块则处理异常 总结2 2 可以同时使用多个catch块来分别处理各种异常类型 程序可以用throw语句引发明确的异常 关键字throws用于列出一个方法可能引发的异常类型 不管是否发生了异常 都将执行finally块中的语句 Java中的垃圾收集就是将分配给对象但不再使用的内存回收或释放的过程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报