




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以往问题总结,定义的组件在事件响应中属于默认状态,不能在事件响应的方法中赋初值,因为没有事件时不能创建对象.,以往知识总结,第7章异常处理,7.1程序错误与处理7.2Java的异常处理,Why:比如除数为零的语句,编译不提示错误,但运行时会中断程序的运行,提示出错。如何不中断程序的运行而跳过出错的地方,继续执行其他部分?What:Java中把有可能出错的地方放进一个叫try的语句块,而在一个叫catch的语句块中处理这个错误,或用throws抛出,让上级或调用者处理。,package异常;publicclassNoHandleEpublicstaticvoiderror()inta=newint5;for(inti=0;i=a.length;i+)/*if(i=0)System.out.println(分母不能为0);continue;*/,ai=10/i;System.out.println(循环次数为i=+i);publicstaticvoidmain(Stringargs)NoHandleE.error();Exceptioninthreadmain分母不能为0循环次数为i=1循环次数为i=2循环次数为i=3循环次数为i=4Exceptioninthreadmainjava.lang.ArrayIndexOutOfBoundsException:5at异常.NoHandleE.error(NoHandleE.java:12)at异常.NoHandleE.main(NoHandleE.java:17),如果注释保留,是C风格,这样处理异常的代码和正常代码混在一起。如果将注释去掉,则是java风格但没有进行异常处理会导致程序非正常终止。Exceptioninthreadmainjava.lang.ArithmeticException:/byzeroat异常.NoHandleE.error(NoHandleE.java:12)at异常.NoHandleE.main(NoHandleE.java:17)另外,我们应注意,从从抛出结果中如何看出那个语句是真正的异常之处。,哪些异常必须抛出一定要掌握。在前面以及后续章节如IO、数据库等中都有捎带介绍,一定要注意。熟悉有关异常,是调试程序的基本功。Java的异常处理机制虽然比面向过程的语言有改进,但现在又成为被抱怨的理由。正在酝酿改进。,7.1程序错误与处理,7.1.1程序错误、发现时刻及错误处理原则7.1.2面向过程与面向对象语言的错误处理方式比较7.1.3Java的错误和异常,7.1.1程序错误、发现时刻及错误处理原则,编译时错违反语法规范的错误称为语法错,在编译时发现。运行时错导致程序无法运行的错误,运行时才能被发现。逻辑错系统无法发现逻辑错。,7.1.2面向过程与面向对象语言的错误处理方式比较,面向过程语言错误处理方式的缺陷不进行范围检查采用if语句进行事先判断以防止出现错误。面向对象语言异常处理的思想异常处理机制的优越之处体现在以下两方面。从语法上看,异常处理语句将程序正常代码与错误处理代码分开,使程序结构清晰,算法重点突出,可读性强。从运行效果看,异常处理语句使程序具有处理错误的能力。,7.1.3Java的错误和异常,Java语言是安全的Java语言提供严密的语法规则。Java在编译和运行时严格检查错误。Java提供异常处理机制。Java提供内存自动管理方式。错误与异常错误(error)指程序运行时遇到的硬件或操作系统的错误。程序中无法处理。异常(exception)指在硬件和操作系统正常时,程序遇到的运行错。,图7.1Java程序发现错误和异常,3.错误类和异常类,Error错误类和Exception异常类都是Thorwable类的子类。层次结构见教材p151。Error错误类,其对象由Java虚拟机生成并抛出给系统,有内存溢出错误、栈溢出错误、动态链接错误等。如当运行没有main()方法的类时,则产生类定义未找到错误(NoClassDefFoundError);当使用new分配内存时,如果没有可用内存,则产生内存溢出错误(OutOfMemoryError).,3.错误类和异常类,Exception异常类:由java程序捕获和处理除数为0的算术异常、数组下标越界异常、空指针异常等。运行时能够发现整数除法中除数为0的语义错。运行时不能发现浮点数除法中除数为0的语义错。,4.程序对错误与异常的三种处理方式,程序不能处理错误,由系统处理,Java程序本身不能对错误处理。如内存溢出,栈溢出。程序应避免而不必须捕获的异常(uncheckedexception),如除数为0、数组下标越界等。程序应考虑进行事先处理。一般的作为RuntimeException的子类。必须捕获的异常(uncheckedexception):对于程序无法预见的、由特殊环境错误造成的异常,如文件没找到,网络通信失败等必须进行捕捉和处理。接下来一定要注意理解区分以上类型。,7.2Java的异常处理,7.2.1异常类说明7.2.2异常处理语句7.2.3抛出异常7.2.4自定义异常类,7.2.1异常类说明,Exception异常类publicclassThrowableimplementsSerializablepublicThrowable()publicThrowable(Stringmessage)publicStringgetMessage()/获得异常信息publicStringtoString()/获得异常对象的描述信息publicvoidprintStackTrace()/显示异常栈跟踪信息publicclassExceptionextendsThrowablepublicException()publicException(Strings),2.RuntimeException运行异常类,算术异常ArithmeticException:除数为0空对象异常NullPointerExceptioninta=null;a0=1;/对空数组中的元素进行操作,产生空对象异常Stringstr=null;System.out.println(str.length();/调用空对象的方法,产生空对象异常类型强制转换异常ClassCastExceptionObjectobj=newObject();Stringstr=(String)obj;,2.RuntimeException运行异常类,负数组长度异常NegativeArraySizeExceptioninta=newint-1;/产生负数组长度异常数组下标越界异常ArrayIndexOutOfBoundsExceptioninta=newint1;a1=1;/产生数组下标越界异常数值格式异常NumberFormatExceptionintj=Integer.parseInt(abc);/产生数值格式异常,7.2.2异常处理语句:本章重点,异常处理语句语法try语句1/存在潜在异常的代码catch(异常类异常对象)语句2/捕获异常并进行处理的代码finally语句3/最后必须执行的代码,无论是否捕获到异常【例7.3】异常的捕获和处理。,package异常;publicclassSample_1publicstaticvoiderror()inta=newint5;for(inti=0;i0/抛出异常,2.方法声明抛出异常的throws子句本章重点,修饰符返回值类型方法(参数列表)throws异常类publicstaticintparseInt(Strings)throwsNumberFormatException构造方法和重载的set()方法声明抛出异常。main()方法声明抛出异常交由系统处理。,7.2.4自定义异常类本章重点,【例7.4】自定义异常类。publicclassIllegalAgeE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蛋品加工企业信息化管理考核试卷
- 轮胎行业知识产权应用与保护体系建设成效考核试卷
- 糕点烘焙中的色彩学与美学应用考核试卷
- 宝宝月子护理指导
- 肿瘤破溃伤口处理
- 婚后网络文学改编收益分配协议
- 离婚诉讼电子游戏账号分割及财产处理协议
- 求职者信息真实披露及就业保障服务协议
- 医疗设备厂商合规性审查及质量认证合同
- 文化产业投资风控补充协议
- 公共组织绩效评估-形考任务一(占10%)-国开(ZJ)-参考资料
- 《慢性阻塞性肺疾病》课件
- 家校共育 静待花开 课件高二下学期学考动员家长会
- 2025陕西氢能产业发展有限公司所属单位招聘(101人)笔试参考题库附带答案详解
- 2025安全生产月安全生产知识竞赛题库及答案(共1418题)
- 2024年内蒙古师范大学招聘事业编制人员考试真题
- 切割钢丝企业数字化转型与智慧升级战略研究报告
- 企业融资的多样选择试题及答案
- 邮轮概论考试题及答案
- 2024年春八年级生物下册 25.1 发酵技术教学设计 (新版)北师大版
- 课题申报书:特殊儿童随班就读支持保障机制研究
评论
0/150
提交评论