回顾06 异常处理、递归和单体程序设计方法.ppt_第1页
回顾06 异常处理、递归和单体程序设计方法.ppt_第2页
回顾06 异常处理、递归和单体程序设计方法.ppt_第3页
回顾06 异常处理、递归和单体程序设计方法.ppt_第4页
回顾06 异常处理、递归和单体程序设计方法.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020 03 02 1 06章异常处理 递归和单体程序设计方法 知识点 2020 03 02 2 本章总体纲要 异常处理递归方法单体 Singleton 程序设计模式 2020 03 02 3 Java异常处理 Exception 基础 异常 Exception 异常 Exception 是正常程序流程所不能处理或没有处理的异常情况或异常事件 在有些书中 异常也称作例外 2020 03 02 4 格式 在try语句块中包含可能会产生异常的语句紧接着若干个catch语句块 进行异常处理catch语句块与finally语句块至少存在一个 try 可能会抛出异常的代码 catch ExceptionTyperef 异常处理代码 finally 2020 03 02 5 为什么需要异常 强制程序异常 错误处理同时指定需要异常的种类异常处理模型提供了一种统一处理异常 错误的模式传统程序方法 设置标志位 或返回错误码 分别处理各种异常情况 但在编程时常常出现这样的情况 忘了对某些异常情况进行处理 尤其是当存在多个分支或者多个开发人员共同开发程序时 简化对异常情况的处理 减少if else语句 2020 03 02 6 什么时候会发生异常 数组的下标越界打开不存在的文件网络无法连接操作数超出所要求的范围少了所需加载的类 自定义异常 要求程序处理 2020 03 02 7 处理异常的几种常用方法 一旦捕获异常 马上进行处理重新抛出异常捕获异常 但并不处理通过语句System exit 退出应用程序 2020 03 02 8 异常 Exceptions 类型 常见异常内存耗尽数组下标越界除数为0非法的参数 方法的参数 2020 03 02 9 异常 Exception 的层次结构 2020 03 02 10 运行时发生的异常 RuntimeExceptions 异常随时都可以发生ArrayIndexOutOfBoundsExceptionNullPointerException定义了引用 但不指向任何对象 object ClassCastException数据类型间的转换不合法良好的编程习惯 可以减少很多异常的发生 2020 03 02 11 受检异常和非受检异常 受检异常必须在方法声明时通过throws列出在编译时就能被检测出非受检测异常不必在throws列表中错误 Errors 和运行时异常 RuntimeExceptions 受检异常 必须处理才能通过编译运行时异常只有在运行时才能被发现错误常常指的是致命性错误 常常也无法处理 2020 03 02 12 处理多种异常 Exception 类型 如果含有多外catch语句块 则异常会被第一个与其相匹配的catch语句块处理 2020 03 02 13 finally语句块 在异常处理过程中 finally语句块总是会被执行到 无论有没有异常发生 也无论有没有异常被捕捉到可选项 finally语句块 通常位于catch语句块的后面可以用来释放try语句块中获得的资源例如 关闭在try语句块中打开的文件 2020 03 02 14 throws列表 在方法的声明处列出所有的受检异常返回类型方法名 参数列表 throws异常类型1 异常类型2 方法体 在本方法内就可以不处理这些异常调用该方法的方法就必须处理这些异常示例 publicstaticvoidg throwsException thrownewException 方法g结束 2020 03 02 15 异常处理 捕捉 或者 声明 如果一个方法调用一个抛出受检异常的方法 含有throws列表的方法 则该方法必须捕捉这些受检异常 或通过throws列表声明这些异常 2020 03 02 16 重新抛出异常 如果catch语句块不处理某种异常 可以重新抛出异常抛出异常的方法 throwe 由其外层的try catch语句块处理 2020 03 02 17 本章总体纲要 异常处理递归方法单体 Singleton 程序设计模式 2020 03 02 18 递归 如果在方法定义中直接或间接地调用该方法本身 就称为递归 2020 03 02 19 汉诺塔 TowerofHanoi 问题 有三根柱子 S T和E柱子S上套着n个盘 小盘依次在大盘上面现在要求 每次只能将一根柱子最上面的一个盘移动到另一根柱子上不允许将大盘放在小盘上面只能利用这三根柱子将在柱子S上的n个盘移动到柱子E上 2020 03 02 20 示例 J Hanoi java 开发者 雍俊海 利用递归求解汉诺塔 TowerofHanoi 问题的例程 publicclassJ Hanoi publicstaticvoidmb hanoi intn charstart chartemp charend if n 1 System out println 将盘从 start 移到 end else mb hanoi n 1 start end temp System out println 将盘从 start 移到 end mb hanoi n 1 temp start end if else结构结束 方法mb hanoi结束publicstaticvoidmain Stringargs mb hanoi 3 S T E 方法main结束 类J Hanoi结束 2020 03 02 21 编译 运行 结果 2020 03 02 22 本章总体纲要 异常处理递归方法单体 Singleton 程序设计模式 2020 03 02 23 单体程序设计模式 要让一个类只能有一个实例对象 2020 03 02 24 示例 J Singleton java 开发者 雍俊海 单体类实现例程 publicclassJ Singleton privatestaticJ Singletonm object newJ Singleton 定义构造方法 不允许自行创建这个类的实例对象privateJ Singleton J Singleton构造方法结束 返回单体实例对象的引用publicstaticJ Singletonmb getObject returnm object 方法mb getObject结束 类J Singleton结束 2020 03 02 25 示例 J Singleton java 开发者 雍俊海 单体类实现例程 publicclassJ Singleton privatestaticJ Singletonm object newJ Singleton 定义构造方法 不允许自行创建这个类的实例对象privateJ Singleton J Singleton构造方法结束 返回单体实例对象的引用publicstaticJ Singletonmb getObject returnm object 方法mb getObject结束 类J Singleton结束 2020 03 02 26 编译 运行 结果 2020 03 02 27 单体类Runtime publicclassRuntime privatestaticRuntimecurrentRuntime newRuntime publicstaticRuntimegetRuntime returncurrentRuntime Don tletanyoneelseinstantiatethisclass privateRuntime 2020 03 02 28 类java lang Runtime的成员方法 publicstaticRuntimegetRuntime p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论