java第06讲异常处理、递归和单体程序设计方法.ppt

上传人:max****ui 文档编号:6372001 上传时间:2020-02-24 格式:PPT 页数:40 大小:698.50KB
返回 下载 相关 举报
java第06讲异常处理、递归和单体程序设计方法.ppt_第1页
第1页 / 共40页
java第06讲异常处理、递归和单体程序设计方法.ppt_第2页
第2页 / 共40页
java第06讲异常处理、递归和单体程序设计方法.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
2020 2 24 1 第6章异常处理 递归和单体程序设计方法 2020 2 24 2 本章总体纲要 异常处理递归方法单体 Singleton 程序设计模式 2020 2 24 3 Java异常处理 Exception 基础 异常 Exception 异常 Exception 是正常程序流程所不能处理或没有处理的异常情况或异常事件 在有些书中 异常也称作例外 2020 2 24 4 格式 在try语句块中包含可能会产生异常的语句紧接着若干个catch语句块 进行异常处理catch语句块与finally语句块至少存在一个 try 可能会抛出异常的代码 catch ExceptionTyperef 异常处理代码 finally 2020 2 24 5 为什么需要异常 强制程序异常 错误处理同时指定需要异常的种类异常处理模型提供了一种统一处理异常 错误的模式传统程序方法 设置标志位 或返回错误码 分别处理各种异常情况 但在编程时常常出现这样的情况 忘了对某些异常情况进行处理 尤其是当存在多个分支或者多个开发人员共同开发程序时 简化对异常情况的处理 减少if else语句 2020 2 24 6 什么时候会发生异常 数组的下标越界打开不存在的文件网络无法连接操作数超出所要求的范围少了所需加载的类 自定义异常 要求程序处理 2020 2 24 7 处理异常的几种常用方法 一旦捕获异常 马上进行处理重新抛出异常捕获异常 但并不处理通过语句System exit 退出应用程序 2020 2 24 8 异常 Exceptions 类型 常见异常内存耗尽数组下标越界除数为0非法的参数 方法的参数 2020 2 24 9 异常 Exception 的层次结构 2020 2 24 10 运行时发生的异常 RuntimeExceptions 异常随时都可以发生ArrayIndexOutOfBoundsExceptionNullPointerException定义了引用 但不指向任何对象 object ClassCastException数据类型间的转换不合法良好的编程习惯 可以减少很多异常的发生 2020 2 24 11 受检异常和非受检异常 受检异常必须在方法声明时通过throws列出在编译时就能被检测出非受检测异常不必在throws列表中错误 Errors 和运行时异常 RuntimeExceptions 受检异常 必须处理才能通过编译运行时异常只有在运行时才能被发现错误常常指的是致命性错误 常常也无法处理 2020 2 24 12 处理多种异常 Exception 类型 如果含有多外catch语句块 则异常会被第一个与其相匹配的catch语句块处理 2020 2 24 13 finally语句块 在异常处理过程中 finally语句块总是会被执行到 无论有没有异常发生 也无论有没有异常被捕捉到可选项 finally语句块 通常位于catch语句块的后面可以用来释放try语句块中获得的资源例如 关闭在try语句块中打开的文件 2020 2 24 14 throws列表 在方法的声明处列出所有的受检异常返回类型方法名 参数列表 throws异常类型1 异常类型2 方法体 在本方法内就可以不处理这些异常调用该方法的方法就必须处理这些异常示例 publicstaticvoidg throwsException thrownewException 方法g结束 2020 2 24 15 异常处理 捕捉 或者 声明 如果一个方法调用一个抛出受检异常的方法 含有throws列表的方法 则该方法必须捕捉这些受检异常 或通过throws列表声明这些异常 2020 2 24 16 重新抛出异常 如果catch语句块不处理某种异常 可以重新抛出异常抛出异常的方法 throwe 由其外层的try catch语句块处理 2020 2 24 17 本章总体纲要 异常处理递归方法单体 Singleton 程序设计模式 2020 2 24 18 递归 如果在方法定义中直接或间接地调用该方法本身 就称为递归 2020 2 24 19 汉诺塔 TowerofHanoi 问题 有三根柱子 S T和E柱子S上套着n个盘 小盘依次在大盘上面现在要求 每次只能将一根柱子最上面的一个盘移动到另一根柱子上不允许将大盘放在小盘上面只能利用这三根柱子将在柱子S上的n个盘移动到柱子E上 2020 2 24 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 2 24 21 编译 运行 结果 2020 2 24 22 本章总体纲要 异常处理递归方法单体 Singleton 程序设计模式 2020 2 24 23 单体程序设计模式 要让一个类只能有一个实例对象 2020 2 24 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 2 24 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 2 24 26 编译 运行 结果 2020 2 24 27 单体类Runtime publicclassRuntime privatestaticRuntimecurrentRuntime newRuntime publicstaticRuntimegetRuntime returncurrentRuntime Don tletanyoneelseinstantiatethisclass privateRuntime 2020 2 24 28 类java lang Runtime的成员方法 publicstaticRuntimegetRuntime publicintavailableProcessors publicProcessexec Stringcommand throwsIOExceptionpublicvoidgc publiclongfreeMemory publiclongtotalMemory publiclongmaxMemory 2020 2 24 29 作业 习题6 4习题6 5 2020 2 24 30 本课件使用要求 使用本课件 必须注明引用 具体见下一个幻灯片 书及课件均可能出现一些错误和缺陷 恳切希望广大读者特别是讲授此课程的老师批评指正 2020 2 24 31 引用声明 本课件来源于 或参考了 下面的书及其课件 雍俊海 Java程序设计教程 北京 清华大学出版社 2007 2020 2 24 32 免责声明 请合法使用课件 其用途应当合法有益而且不应对任何人造成任何伤害或损失同时请注意教材作者及出版社没有对本课件作出任何承诺与保证 2020 2 24 33 参考文献 本课件的参考文献与下面书的参考文献相同雍俊海 Java程序设计教程 北京 清华大学出版社 2007 雍俊海 Java程序设计习题集 含参考答案 北京 清华大学出版社 2006 雍俊海 Java程序设计 北京 清华大学出版社 2004 2020 2 24 34 雍俊海编写过的教材和教参 雍俊海 计算机动画算法与编程基础 北京 清华大学出版社 2008 雍俊海 Java程序设计 北京 清华大学出版社 2008 雍俊海 Java程序设计教程 第2版 北京 清华大学出版社 2007 雍俊海 Java程序设计习题集 含参考答案 北京 清华大学出版社 2006 雍俊海 Java程序设计 北京 清华大学出版社 2004 2020 2 24 35 雍俊海编写过的教材和教参 雍俊海 计算机动画算法与编程基础 北京 清华大学出版社 2008 2020 2 24 36 雍俊海编写过的教材和教参 雍俊海 Java程序设计 北京 清华大学出版社 2008 2020 2 24 37 雍俊海编写过的教材和教参 雍俊海 Java程序设计教程 清华大学出版社 2007 普通高等教育精品教材 普通高等教育 十一五 国家级规划教材 2020 2 24 38 雍俊海编写过的教材和教参 雍俊海 Java程序设计习题集 含参考答案 清华大学出版社 2006 2020 2 24 39 雍俊海编写过的教材和教参 雍俊海 JAVA程序设计 北京 清华大学出版社 2004 2020 2 24 40 谢谢 请多指教
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!