java第讲异常处理递归和单体程序设计方法.ppt
《java第讲异常处理递归和单体程序设计方法.ppt》由会员分享,可在线阅读,更多相关《java第讲异常处理递归和单体程序设计方法.ppt(40页珍藏版)》请在三一办公上搜索。
1、2023/11/7,1,第 6 章 异常处理、递归和单体程序设计方法,2023/11/7,2,本章总体纲要,异常处理递归方法单体(Singleton)程序设计模式,2023/11/7,3,Java 异常处理(Exception)基础,异常(Exception)?异常(Exception)是正常程序流程所不能处理或没有处理的异常情况或异常事件。在有些书中,异常也称作例外。,2023/11/7,4,格式,在try语句块中包含可能会产生异常的语句紧接着若干个catch语句块,进行异常处理catch语句块与finally语句块至少存在一个,try/可能会抛出异常的代码catch(ExceptionTy
2、pe ref)/异常处理代码finally/,2023/11/7,5,为什么需要异常?,强制程序异常/错误处理同时指定需要异常的种类异常处理模型提供了一种统一处理异常/错误的模式传统程序方法:设置标志位,或返回错误码,分别处理各种异常情况。但在编程时常常出现这样的情况:忘了对某些异常情况进行处理,尤其是当存在多个分支或者多个开发人员共同开发程序时。简化对异常情况的处理,减少if-else语句,2023/11/7,6,什么时候会发生异常?,数组的下标越界打开不存在的文件网络无法连接操作数超出所要求的范围少了所需加载的类,自定义异常,要求程序处理,2023/11/7,7,处理异常的几种常用方法,一
3、旦捕获异常,马上进行处理重新抛出异常捕获异常,但并不处理通过语句System.exit()退出应用程序,2023/11/7,8,异常(Exceptions)类型,常见异常内存耗尽数组下标越界除数为0非法的参数(方法的参数),2023/11/7,9,异常(Exception)的层次结构,2023/11/7,10,运行时发生的异常(RuntimeExceptions),异常随时都可以发生ArrayIndexOutOfBoundsExceptionNullPointerException定义了引用,但不指向任何对象(object)ClassCastException数据类型间的转换不合法良好的编程习
4、惯,可以减少很多异常的发生,2023/11/7,11,受检异常和非受检异常,受检异常必须在方法声明时通过throws列出在编译时就能被检测出非受检测异常不必在throws列表中错误(Errors)和运行时异常(RuntimeExceptions)受检异常,必须处理才能通过编译运行时异常只有在运行时才能被发现错误常常指的是致命性错误,常常也无法处理,2023/11/7,12,处理多种异常(Exception)类型,如果含有多外catch语句块,则异常会被第一个与其相匹配的catch语句块处理,2023/11/7,13,finally 语句块,在异常处理过程中,finally 语句块总是会被执行到
5、:无论有没有异常发生,也无论有没有异常被捕捉到可选项:finally 语句块,通常位于catch 语句块的后面可以用来释放try语句块中获得的资源例如,关闭在try语句块中打开的文件,2023/11/7,14,throws 列表,在方法的声明处列出所有的受检异常返回类型 方法名(参数列表)throws 异常类型1,异常类型2,/方法体在本方法内就可以不处理这些异常调用该方法的方法就必须处理这些异常示例:public static void g()throws Exception throw new Exception();/方法g结束,2023/11/7,15,异常处理:捕捉-或者-声明,如果
6、一个方法调用一个抛出受检异常的方法(含有throws列表的方法),则该方法必须捕捉这些受检异常,或通过throws列表声明这些异常,2023/11/7,16,重新抛出异常,如果catch语句块不处理某种异常,可以重新抛出异常抛出异常的方法:throw e;由其外层的try-catch 语句块处理,2023/11/7,17,本章总体纲要,异常处理递归方法单体(Singleton)程序设计模式,2023/11/7,18,递归,如果在方法定义中直接或间接地调用该方法本身,就称为递归,2023/11/7,19,汉诺塔(Tower of Hanoi)问题,有三根柱子:S、T和E柱子S上套着n个盘,小盘依
7、次在大盘上面现在要求:每次只能将一根柱子最上面的一个盘移动到另一根柱子上不允许将大盘放在小盘上面只能利用这三根柱子将在柱子S上的n个盘移动到柱子E上,2023/11/7,20,示例,/J_Hanoi.java;开发者:雍俊海/利用递归求解汉诺塔(Tower of Hanoi)问题的例程。public class J_Hanoi public static void mb_hanoi(int n,char start,char temp,char end)if(n=1)System.out.println(将盘从+start+移到+end);else mb_hanoi(n-1,start,end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 异常 处理 递归 单体 程序设计 方法
链接地址:https://www.31ppt.com/p-6510089.html