




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/11/19,1,第6章异常处理、递归和单体程序设计方法,2019/11/19,2,本章总体纲要,异常处理递归方法单体(Singleton)程序设计模式,2019/11/19,3,Java异常处理(Exception)基础,异常(Exception)?异常(Exception)是正常程序流程所不能处理或没有处理的异常情况或异常事件。在有些书中,异常也称作例外。,2019/11/19,4,格式,在try语句块中包含可能会产生异常的语句紧接着若干个catch语句块,进行异常处理catch语句块与finally语句块至少存在一个,try/可能会抛出异常的代码catch(ExceptionTyperef)/异常处理代码finally/,2019/11/19,5,为什么需要异常?,强制程序异常/错误处理同时指定需要异常的种类异常处理模型提供了一种统一处理异常/错误的模式传统程序方法:设置标志位,或返回错误码,分别处理各种异常情况。但在编程时常常出现这样的情况:忘了对某些异常情况进行处理,尤其是当存在多个分支或者多个开发人员共同开发程序时。简化对异常情况的处理,减少if-else语句,2019/11/19,6,什么时候会发生异常?,数组的下标越界打开不存在的文件网络无法连接操作数超出所要求的范围少了所需加载的类,自定义异常,要求程序处理,2019/11/19,7,处理异常的几种常用方法,一旦捕获异常,马上进行处理重新抛出异常捕获异常,但并不处理通过语句System.exit()退出应用程序,2019/11/19,8,异常(Exceptions)类型,常见异常内存耗尽数组下标越界除数为0非法的参数(方法的参数),2019/11/19,9,异常(Exception)的层次结构,2019/11/19,10,运行时发生的异常(RuntimeExceptions),异常随时都可以发生ArrayIndexOutOfBoundsExceptionNullPointerException定义了引用,但不指向任何对象(object)ClassCastException数据类型间的转换不合法良好的编程习惯,可以减少很多异常的发生,2019/11/19,11,受检异常和非受检异常,受检异常必须在方法声明时通过throws列出在编译时就能被检测出非受检测异常不必在throws列表中错误(Errors)和运行时异常(RuntimeExceptions)受检异常,必须处理才能通过编译运行时异常只有在运行时才能被发现错误常常指的是致命性错误,常常也无法处理,2019/11/19,12,处理多种异常(Exception)类型,如果含有多外catch语句块,则异常会被第一个与其相匹配的catch语句块处理,2019/11/19,13,finally语句块,在异常处理过程中,finally语句块总是会被执行到:无论有没有异常发生,也无论有没有异常被捕捉到可选项:finally语句块,通常位于catch语句块的后面可以用来释放try语句块中获得的资源例如,关闭在try语句块中打开的文件,2019/11/19,14,throws列表,在方法的声明处列出所有的受检异常返回类型方法名(参数列表)throws异常类型1,异常类型2,/方法体在本方法内就可以不处理这些异常调用该方法的方法就必须处理这些异常示例:publicstaticvoidg()throwsExceptionthrownewException();/方法g结束,2019/11/19,15,异常处理:捕捉-或者-声明,如果一个方法调用一个抛出受检异常的方法(含有throws列表的方法),则该方法必须捕捉这些受检异常,或通过throws列表声明这些异常,2019/11/19,16,重新抛出异常,如果catch语句块不处理某种异常,可以重新抛出异常抛出异常的方法:throwe;由其外层的try-catch语句块处理,2019/11/19,17,本章总体纲要,异常处理递归方法单体(Singleton)程序设计模式,2019/11/19,18,递归,如果在方法定义中直接或间接地调用该方法本身,就称为递归,2019/11/19,19,汉诺塔(TowerofHanoi)问题,有三根柱子:S、T和E柱子S上套着n个盘,小盘依次在大盘上面现在要求:每次只能将一根柱子最上面的一个盘移动到另一根柱子上不允许将大盘放在小盘上面只能利用这三根柱子将在柱子S上的n个盘移动到柱子E上,2019/11/19,20,示例,/J_Hanoi.java;开发者:雍俊海/利用递归求解汉诺塔(TowerofHanoi)问题的例程。publicclassJ_Hanoipublicstaticvoidmb_hanoi(intn,charstart,chartemp,charend)if(n=1)System.out.println(将盘从+start+移到+end);elsemb_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结束,2019/11/19,21,编译、运行开发者:雍俊海/单体类实现例程。publicclassJ_SingletonprivatestaticJ_Singletonm_object=newJ_Singleton();/定义构造方法:不允许自行创建这个类的实例对象privateJ_Singleton()/J_Singleton构造方法结束/返回单体实例对象的引用publicstaticJ_Singletonmb_getObject()returnm_object;/方法mb_getObject结束/类J_Singleton结束,2019/11/19,25,示例,/J_Singleton.java;开发者:雍俊海/单体类实现例程。publicclassJ_SingletonprivatestaticJ_Singletonm_object=newJ_Singleton();/定义构造方法:不允许自行创建这个类的实例对象privateJ_Singleton()/J_Singleton构造方法结束/返回单体实例对象的引用publicstaticJ_Singletonmb_getObject()returnm_object;/方法mb_getObject结束/类J_Singleton结束,2019/11/19,26,编译、运行publicstaticRuntimegetRuntime()returncurrentRuntime;/*Dontletanyoneelseinstantiatethisclass*/privateRuntime()/.,2019/11/19,28,类java.lang.Runtime的成员方法,publicstaticRuntimegetRuntime()publicintavailableProcessors()publicProcessexec(Stringcommand)throwsIOExceptionpublicvoidgc()publiclongfreeMemory()publiclongtotalMemory()publiclongmaxMemory(),2019/11/19,29,作业,习题6.4习题6.5,2019/11/19,30,本课件使用要求,使用本课件,必须注明引用(具体见下一个幻灯片)书及课件均可能出现一些错误和缺陷,恳切希望广大读者特别是讲授此课程的老师批评指正,2019/11/19,31,引用声明,本课件来源于(或参考了)下面的书及其课件:雍俊海.Java程序设计教程.北京:清华大学出版社,2007.,2019/11/19,32,免责声明,请合法使用课件,其用途应当合法有益而且不应对任何人造成任何伤害或损失同时请注意教材作者及出版社没有对本课件作出任何承诺与保证,2019/11/19,33,参考文献,本课件的参考文献与下面书的参考文献相同雍俊海.Java程序设计教程.北京:清华大学出版社,2007.雍俊海.Java程序设计习题集(含参考答案).北京:清华大学出版社,2006.雍俊海.Java程序设计.北京:清华大学出版社,2004.,2019/11/19,34,雍俊海编写过的教材和教参,雍俊海.计算机动画算法与编程基础.北京:清华大学出版社.2008.雍俊海.Java程序设计.北京:清华大学出版社.2008.雍俊海.Java程序设计教程(第2版).北京:清华大学出版社.2007.雍俊海.Java程序设计习题集(含参考答案).北京:清华大学出版社,2006.雍俊海.Java程序设计.北京:清华大学出版社.2004.,2019/11/19,35,雍俊海编写过的教材和教参,雍俊海.计算机动画算法与编程基础.北京:清华大学出版社.2008.,2019/11/19,36,雍俊海编写过的教材和教参,雍俊海.Java程序设计.北京:清华大学出版社,2008.,2019/11/19,37,雍俊海编写过的教材和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都文理学院《跨国企业经营与管理》2024-2025学年第一学期期末试卷
- 浙江越秀外国语学院《机械工程材料及热加工工艺》2024-2025学年第一学期期末试卷
- 安徽大学《体育教学技能》2024-2025学年第一学期期末试卷
- 济南工程职业技术学院《资源昆虫学》2024-2025学年第一学期期末试卷
- 濮阳医学高等专科学校《信息系统分析与设计实验课》2024-2025学年第一学期期末试卷
- 甘肃农业职业技术学院《空间数据库原理与应用》2024-2025学年第一学期期末试卷
- 河北政法职业学院《计量经济学与应用》2024-2025学年第一学期期末试卷
- 黑龙江交通职业技术学院《空间数据库》2024-2025学年第一学期期末试卷
- 四川文化传媒职业学院《环境设计创新训练(2)》2024-2025学年第一学期期末试卷
- 川北幼儿师范高等专科学校《角色造型设计》2024-2025学年第一学期期末试卷
- 企业员工职业道德考核制度
- 公司安全事故隐患内部举报、报告奖励制度
- 产品方案设计模板
- 产科手术麻醉
- 【初中物理】质量与密度练习题 2024-2025学年初中物理人教版八年级上册
- 新时代青年做好新时代使命担当人
- 2-U9C操作培训-MRP运算
- 【上海市塑料探究所企业员工激励机制存在的问题及优化建议探析(论文)8200字】
- 浙教版二年级下册递等式计算题100道及答案
- 安全管理核心制度综合体系华润置地北京
- 《核电厂汽轮发电机组隔振基础测试技术导则》
评论
0/150
提交评论