收藏 分销(赏)

第6章-异常处理.ppt

上传人:天**** 文档编号:10307949 上传时间:2025-05-22 格式:PPT 页数:26 大小:120KB
下载 相关 举报
第6章-异常处理.ppt_第1页
第1页 / 共26页
第6章-异常处理.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第6章 异常处理ppt课件(全),*,第,6,章 异常处理,第6章 异常处理ppt课件(全),本章学习目标,了解异常和异常分类,了解Java异常处理机制和异常类,掌握try/catch/finally语句处理异常的方式以及如何声明异常,了解自定义异常,第6章 异常处理ppt课件(全),任务,1,:了解什么是异常,【,任务内容,】,了解什么是异常,【,能力目标,】,了解什么是异常,了解异常类和错误类的区别,6.1 了解异常,第6章 异常处理ppt课件(全),我们总是试图避免在软件程序中错误的发生,但是百分之百没有错误的程序是不存在的。无论怎样,如果我们能适当的处理错误,将会极大的改善程序的可读性、可靠性以及可维护性。,观察下面的实例,:,ExceptionDemo.java,程序在运行过程中发生异常或错误后,如果不做任何处理,,程序就会被终止,,为了保证程序有效地执行,就需要对发生的异常或错误进行相应处理。在,Java,程序中,异常处理允许程序,捕获异常,,,处理它们,,然后程序,继续执行,,它是分层把关,因此,,错误情况不会介入到程序的正常流程中,。,第6章 异常处理ppt课件(全),Java中异常类的继承关系,Object,Throwable,Error,Exception,AWTException,IOException,RuntimeException,第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课件(全),public class ExceptionDemo,public static void main(String args),String strPrice=20;,try,/,进行数据类型转换时,,parseFloat,方法有可能出现异常,float fprice=Float.parseFloat(strPrice);,catch(NumberFormatException nfe),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),声明异常,。就是在方法名后面加上,throws,Exceptionname,。方法本身只是声明抛出异常,由,函数的调用者来捕获异常,。,第6章 异常处理ppt课件(全),任务,5,:掌握,try.catch,语句,【,任务内容,】,掌握,try.catch,语句,【,能力目标,】,掌握,try.catch,语句,范例:,ExceptionDemo2.java,6.2 trycatch语句,第6章 异常处理ppt课件(全),Try-catch-finally语法格式,try,调用有可能产生异常的方法及其他,java,语句;,catch,(异常类名 异常对象名),异常处理;,catch,(异常类名 异常对名),异常处理;,.,finally,最终处理;,第6章 异常处理ppt课件(全),public class TryCatchFinally,public static void main(String args ),Method(0);Method(1);Method(2);,static void Method(int a),System.out.println(,调用方法,Method(+a+);,try,if(a=0),System.out.println(t,没有异常产生,正常退出。,);,return;,else if(a=1),int i=0;int j=4/i;,else if(a=2),int iArray=new int4;iArray4=3;,第6章 异常处理ppt课件(全),catch(ArithmeticException e),System.out.println(t,捕获异常:,+e);,catch(ArrayIndexOutOfBoundsException e),System.out.println(t,捕获异常:,+e.getMessage();,catch(Exception e),System.out.println(t,产生的异常已被处理,该,catch,块不会被执行。,);,finally,System.out.println(tfinally,块总是被执行。,);,注意:,在使用多重,catch,语句块时,异常子类一定要位于异常父类之前,否则,控制权将永远传不到子类,将产生一个不能执行的代码,就会发生编译错误。,第6章 异常处理ppt课件(全),任务,6,:了解,Java,异常处理机制,Java,程序在执行中,如果方法中的一个语句抛出一个没有在相应的,trycatch,块中处理的异常,那么这个异常就被抛出到,调用方法中,。如果异常也没有在调用方法中被处理,它就被抛出到,该方法的调用程序,。这个过程要一直延续到异常被处理。如果异常到这时还没被处理,它便回到,main(),,,如果,main(),不处理它,,那么,,该异常就异常地中断程序,。,6.2 trycatch语句,第6章 异常处理ppt课件(全),任务,7,:声明抛出异常,【,任务内容,】,声明抛出异常,【,能力目标,】,掌握抛出异常的方法,范例:,ThrowsException.java,6.3 throws关键字,第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,父异常类名,类体,;,例如:,class NumberRangeException extends Exception,NumberRangeException(String msg),super(msg);,第6章 异常处理ppt课件(全),范例:,创建自定义异常类,采用继承,Throwable,类,MyFirstException.java,范例:,用继承,Exception,类方式,新建自定义异常类,MySecondException.java,第6章 异常处理ppt课件(全),任务,9,:抛出异常的方法,throw,关键字,【,任务内容,】,使用,throw,关键字在方法中抛出异常,【,能力目标,】,学会使用,throw,关键字,掌握捕获异常,并进行相应的异常处理,【,任务分析,】,程序在运行中会出现很多种情况,这时程序往往需要根据不同的情况,抛出,指定,的异常类对象,在当前方法中或者是当前方法的调用者要对其进行相应的处理,这时,就需要用到,throw,关键字,用它抛出指定的异常类对象。,范例:,ThrowException.java,6.4自定义异常与 throw关键字,第6章 异常处理ppt课件(全),任务,10,:了解,finally,关键字,【,任务内容,】,了解,finally,关键字,【,能力目标,】,了解,finally,语句块的作用,范例:,ExceptionDemo3.java,finally,语句的主要作用是在,try,或,catch,转到其他部分前做的一些“善后”工作。例如:关闭打开的文件,释放连接、内存等系统资源。,finally,语句的执行是一种无条件的操作,无论在哪种异常下都会执行,即使,try,或者,catch,语句块中有,continue,、,return,、,break,等关键字,或者,throw,语句,程序都会执行,finally,语句。,注意:,终止程序的,System.exit(0),方法在,try,语句块中被执行时,这是,finally,语句不被执行的唯一情况。,6.5 finally关键字,第6章 异常处理ppt课件(全),作业,1.,编写一个自定义异常类,MyException1,,再编写测试类,TestException,,要求抛出,MyException1,类对象并捕获。,2.,编写一个自定义异常类,MyException2,,从键盘输入一个数,若输入的数不小于,0,,则输出它的平方根;若小于,0,,则抛出,MyException2,类对象,输出提示信息“输入错误”。提示:求平方根可以调用,Math,类的,sqrt(),方法。,第6章 异常处理ppt课件(全),
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服