第6章-异常处理_第1页
第6章-异常处理_第2页
第6章-异常处理_第3页
第6章-异常处理_第4页
第6章-异常处理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第6章异常处理第6章异常处理ppt课件(全)本章学习目标了解异常和异常分类了解Java异常处理机制和异常类掌握try/catch/finally语句处理异常的方式以及如何声明异常了解自定义异常第6章异常处理ppt课件(全)任务1:了解什么是异常【任务内容】了解什么是异常【能力目标】了解什么是异常了解异常类和错误类的区别6.1了解异常第6章异常处理ppt课件(全)

我们总是试图避免在软件程序中错误的发生,但是百分之百没有错误的程序是不存在的。无论怎样,如果我们能适当的处理错误,将会极大的改善程序的可读性、可靠性以及可维护性。观察下面的实例:ExceptionDemo.java

程序在运行过程中发生异常或错误后,如果不做任何处理,程序就会被终止,为了保证程序有效地执行,就需要对发生的异常或错误进行相应处理。在Java程序中,异常处理允许程序捕获异常,处理它们,然后程序继续执行,它是分层把关,因此,错误情况不会介入到程序的正常流程中。

第6章异常处理ppt课件(全)Java中异常类的继承关系ObjectThrowableErrorExceptionAWTExceptionIOExceptionRuntimeException第6章异常处理ppt课件(全)Error类对象:由Java虚拟机生成并抛出;这样的异常超出了程序可控制的范围(硬件故障、内存泄露、死循环等)。在Java编程语言中,错误类定义被认为是不能恢复的严重错误条件。在大多数情况下,当遇到这样的错误时,建议让程序中断。Exception类对象:由应用程序处理或抛出;该类异常定义了程序中可能遇到的轻微的错误条件,可编写代码来处理异常并继续执行程序,而不是让程序中断。(想打开的文件不存在;网络连接中断;受控操作数超出预定范围;正在装载的类文件丢失)。第6章异常处理ppt课件(全)

“异常”这个词有“对此感到意外”的含义。出现异常的代码部分不清楚该如何处理,但也知道不能置之不理。这段程序需要停下来,看看是不是别的地方的程序能够处理这个问题。只是在当前的环境下没有足够的信息来解决这个问题,所以就把问题提交到一个更高级别的环境中。程序中的错误可能来自于编译错误和运行错误。编译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标代码的编译过程而产生的错误,它将由语言的编译系统负责检测和报告;运行错误是在程序的运行过程中产生的错误。第6章异常处理ppt课件(全)任务2:了解异常的分类【任务内容】了解异常的分类【能力目标】掌握异常类6.1了解异常第6章异常处理ppt课件(全)描述了Java虚拟机内部错误及资源耗尽的情形,应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。包括RuntimeException和其他非RuntimeException第6章异常处理ppt课件(全)任务3:了解异常类常用的方法【任务内容】了解异常类常用的方法【能力目标】掌握异常类常用的方法6.1了解异常第6章异常处理ppt课件(全)publicclassExceptionDemo{ publicstaticvoidmain(String[]args){ StringstrPrice="20"; try{//进行数据类型转换时,parseFloat方法有可能出现异常

floatfprice=Float.parseFloat(strPrice); }catch(NumberFormatExceptionnfe){ System.err.println("Exception:"+nfe.getMessage()); System.err.println("Exception:"+nfe.toString());

nfe.printStackTrace(); } }}第6章异常处理ppt课件(全)任务4:了解异常的捕获【任务内容】了解异常的抛出和捕获【能力目标】掌握异常的抛出和捕获6.1了解异常第6章异常处理ppt课件(全)对于异常有三种处理方法:(1)捕获异常。通过try...catch语句,在catch子句中编写处理异常的语句。(2)抛出异常。通过throw语句,抛出一个异常对象。对于系统定义的异常类,Java程序在运行过程中会自动生成异常类对象并自动抛出;对于用户自定义异常类则要手动生成异常类对象然后再手动抛出提交到运行时系统。(3)声明异常。就是在方法名后面加上throwsExceptionname。方法本身只是声明抛出异常,由函数的调用者来捕获异常。第6章异常处理ppt课件(全)任务5:掌握try...catch语句【任务内容】掌握try...catch语句【能力目标】掌握try...catch语句范例:ExceptionDemo2.java6.2try…catch语句第6章异常处理ppt课件(全)Try-catch-finally语法格式try{调用有可能产生异常的方法及其他java语句;}catch(异常类名异常对象名){异常处理;}catch(异常类名异常对名){异常处理;}......finally{最终处理;}第6章异常处理ppt课件(全)publicclassTryCatchFinally{ publicstaticvoidmain(Stringargs[]) {Method(0);Method(1); Method(2); } staticvoidMethod(inta) { System.out.println("调用方法Method("+a+")"); try {if(a==0) {System.out.println("\t没有异常产生,正常退出。"); return; } elseif(a==1) {inti=0;intj=4/i;} elseif(a==2) {intiArray[]=newint[4];iArray[4]=3;} }第6章异常处理ppt课件(全)catch(ArithmeticExceptione) {System.out.println("\t捕获异常:"+e); }catch(ArrayIndexOutOfBoundsExceptione) {System.out.println("\t捕获异常:"+e.getMessage());}catch(Exceptione) {System.out.println("\t产生的异常已被处理,该catch块不会被执行。"); }finally {System.out.println("\tfinally块总是被执行。"); }}}注意:在使用多重catch语句块时,异常子类一定要位于异常父类之前,否则,控制权将永远传不到子类,将产生一个不能执行的代码,就会发生编译错误。

第6章异常处理ppt课件(全)任务6:了解Java异常处理机制Java程序在执行中,如果方法中的一个语句抛出一个没有在相应的try…catch块中处理的异常,那么这个异常就被抛出到调用方法中。如果异常也没有在调用方法中被处理,它就被抛出到该方法的调用程序。这个过程要一直延续到异常被处理。如果异常到这时还没被处理,它便回到main(),如果main()不处理它,那么,该异常就异常地中断程序。6.2try…catch语句第6章异常处理ppt课件(全)任务7:声明抛出异常【任务内容】声明抛出异常【能力目标】掌握抛出异常的方法范例:ThrowsException.java6.3throws关键字第6章异常处理ppt课件(全)程序员可以做满足该要求的两件事:第一,通过将try{}catch{}块纳入其代码中,在这里捕获给被命名为属于某个超类的异常,并调用方法处理它。即使catch块是空的,这也算是处理情况。第二,让被调用的方法表示它将不处理异常,而且该异常将被抛回到它所遇到的调用方法中。它是通过用throws子句标记的该调用方法的声明来实现的。使用throws关键字语法:返回类型方法名(参数列表)throws异常类名1,异常类名2,异常类名3第6章异常处理ppt课件(全)任务8:自定义异常类【任务内容】采用继承Throwable类方式,新建自定义异常类【能力目标】掌握自定义异常类的基本结构学会如何编写一个自定义异常类【任务分析】要完成这个任务,首先通过class关键字声明一个自定义异常类,接着在自定义异常类名的后面用extends关键字,让其继承Throwable这个父类即可。6.4自定义异常与throw关键字第6章异常处理ppt课件(全)class自定义异常extends父异常类名

{类体;

}例如:classNumberRangeExceptionextendsException{ NumberRangeException(Stringmsg) { super(msg); } }第6章异常处理ppt课件(全)范例:创建自定义异常类,采用继承Throwable类MyFirstException.java范例:用继承Exception类方式,新建自定义异常类MySecondException.java

第6章异常处理ppt课件(全)任务9:抛出异常的方法——throw关键字【任务内容】

使用throw关键字在方法中抛出异常【能力目标】学会使用throw关键字掌握捕获异常,并进行相应的异常处理【任务分析】程序在运行中会出现很多种情况,这时程序往往需要根据不同的情况,抛出指定的异常类对象,在当前方法中或者是当前方法的调用者要对其进行相应的处理,这时,就需要用到throw关键字,用它抛出指定的异常类对象。范例:ThrowException.java6.4自定义异常与throw关键字第6章异常处理ppt课件(全)任务10:了解finally关键字【任务内容】了解finally关键字【能力目标】了解finally语句块的作用范例:ExceptionDemo3.javafinally语句的主要作用是在try或catch转到其他部分前做的一些“善后”工作。例如:关闭打开的文件,释放连接、内存等系统资源。finally语句的执行是一种无条件的操作,无论在哪种异常下都会执行,即使try或者catch语句块中有continue、return、break等关键字,或者throw语句,程序都会执行finally语句。注意:终止程序的System.exit(0)方法在try语句块中被执行时,这是finally语句不被执行的唯一

温馨提示

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

评论

0/150

提交评论