第5章 异常处理PPT演示课件_第1页
第5章 异常处理PPT演示课件_第2页
第5章 异常处理PPT演示课件_第3页
第5章 异常处理PPT演示课件_第4页
第5章 异常处理PPT演示课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

上海大学CIMS和机器人中心,Java在工程中的应用,本科生课程:09326080,刘丽兰2020年5月19日,第8周,回顾,类的多态性重载和覆盖抽象类和最终类publicabstractclassClosedFigurepublicabstractdoublearea();publicabstractdoubleperimeter();接口、内部类publicinterfaceAreapublicabstractdoublearea();,第5章异常处理,5.1程序错误与处理5.2Java的异常处理,异常的概念:在进行程序设计时,错误的产生是不可避免的,如何处理错误?把错误交给谁去处理?程序又该如何从错误中恢复?这是任何程序设计语言都要解决的问题。所谓错误,是在程序运行过程中发生的异常事件,比如除0溢出、数组越界、文件找不到等,这些事件的发生将阻止程序的正常运行。为了加强程序的鲁棒性,程序设计时,必须考虑到可能发生的异常事件并做出相应的处理。,5.1程序错误与处理,什么情况下使用异常处理机制?当方法因为自身无法控制的原因而不能完成其任务文件不存在,网络连接无法建立处理在方法、类库、类中抛出的例外如FileInputStream.read产生IOException在大的项目中采用统一的方式处理错误时如编写一个文字处理器异常应该是不经常发生但却可能发生的故障一定发生的事件不应该用异常机制来处理异常处理用于使系统从故障中恢复提示信息/不产生无效的结果/释放资源,5.1程序错误与处理,异常处理机制的优点:从语法上看,异常处理语句将程序正常代码与错误处理代码分开,使程序结构清晰,算法重点突出,可读性强。从运行效果看,异常处理语句使程序具有处理错误的能力。即使发生了运行错,应用程序能够捕获异常并即使处理异常,使程序从运行错误中很好地恢复并继续运行,而不会导致程序运行非正常终止。,异常处理是捕获和处理运行时错误的一种机制,5.1程序错误与处理,5.1程序错误与处理,Java的错误和异常错误与异常按照错误性质,Java将运行时错误分为:错误和异常。错误(error)指程序运行时遇到的硬件或操作系统的错误,如:内存溢出、虚拟机错误等。错误对程序而言是致命性的,错误将导致程序无法运行,程序本身不能处理错误。异常(exception)指在硬件和操作系统正常时,程序遇到的运行错。如:除数为0、数组越界等。异常对于程序而言是非致命性的,虽然异常会导致程序非正常终止,但Java的异常处理机制使程序自身能够捕获和处理异常,使程序仍可继续运行。,5.1程序错误与处理,Java的错误和异常,Java程序发现错误和异常:,5.1程序错误与处理,Java的错误和异常错误类和异常类Error类由Java虚拟机生成并抛出给系统,有内存溢出错误、动态链接错误等。Exception异常类是Java程序捕获和处理的对象。异常对象中包含错误的位置和特征信息。除数为0的算术异常、数组下标越界异常、空指针异常等。,5.1程序错误与处理,Java的错误和异常程序对错误与异常的三种处理方式程序不能处理错误由系统处理,Java程序本身不能对错误进行处理。程序应避免而不捕获的异常程序能够预见的异常,如除数为0、数组下标越界等,程序应该考虑周全进行事先处理,尽量避免发生异常。必须捕获的异常程序无法预见的、由特殊环境错误造成的异常,如:文件未找到、网络通信失败等,必须进行捕获和处理。,5.1程序错误与处理,错误类和异常类层次结构:,5.1程序错误与处理,Java的错误和异常例:P152,【例5.2】发现数组下标越界的语义错。publicclassOutofboundspublicstaticvoidmain(Stringargs)inta=1,2,3,4;for(inti=0;i0,5.2Java的异常处理措施,抛出异常throws语句:不想处理或不能处理异常修饰符返回值类型方法(参数列表)throws异常类throws是关键字,是方法要抛出的异常类,可以声明多个异常类,用逗号隔开。throws子句的作用:声明方法抛出指定异常,方法的调用者必须捕获并处理该指定的异常,实现了异常对象在方法之间的传递。,5.2Java的异常处理措施,publicvoidset(intage)throwsExceptiontryif(age0/抛出异常,5.2Java的异常处理措施,例如:1)一个声明了抛出异常的类:publicstaticintparseInt(Strings)throwsNumberFormatException2)调用该类,必须使用try语句捕获并处理trytempcount=Integer.parseInt(stri);count+;catch(NumberFormatExceptione)System.out.println(“字符串”+stri+“不能转换为整数,产生的异常类是”+e.getClass().getName();阅读P163,【例5.6】声明抛出异常的方法与方法调用者处理异常,5.2Java的异常处理措施,自定义异常类当Java提供的异常类不能满足需求时,可以自定义异常类。自定义的异常类应该是Exception的子类,5.2Java的异常处理措施,例:publicclassIllegalAgeExceptionextendsException/无效年龄异常类publicIllegalAgeException(Strings)super(s);publicIllegalAgeException()this(“”);,5.2Java的异常处理措施,publicvoidset(intage)throwsIllegalAgeExceptiontryif(age0/抛出异常,总结,异常,课堂练习,采用:try-throw-catch关键字,实现下列方法的异常处理,完成完整程序。publicvoidset(intage)if(age0,课后作业,P141实验2(2):声明一个Average接口,其中约定求平均值的

温馨提示

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

评论

0/150

提交评论