异常的捕获及处理学习教案.pptx

上传人:莉*** 文档编号:74484410 上传时间:2023-02-27 格式:PPTX 页数:20 大小:275.15KB
返回 下载 相关 举报
异常的捕获及处理学习教案.pptx_第1页
第1页 / 共20页
异常的捕获及处理学习教案.pptx_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《异常的捕获及处理学习教案.pptx》由会员分享,可在线阅读,更多相关《异常的捕获及处理学习教案.pptx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、会计学1异常异常(ychng)的捕获及处理的捕获及处理第一页,共20页。6.2 异常异常(ychng)类的继承结构类的继承结构查阅查阅(chyu)API文档文档2ObjectThrowableRuntimeException Error Exception IOExceptionJava程序中的异常程序中的异常(ychng)现象也采用了面向对象的思想,现象也采用了面向对象的思想,所有的异常所有的异常(ychng)都使用类来描述。都使用类来描述。第1页/共20页第二页,共20页。6.2 异常类的继承异常类的继承(jchng)结构结构3Error 类:应用程序在运行期间发生的严重错误。例如类:应用

2、程序在运行期间发生的严重错误。例如(lr),虚拟,虚拟机内存用尽、堆栈溢出等。(程序员管不了)机内存用尽、堆栈溢出等。(程序员管不了)Exception 类:几十个子类,描述了不同类型的异常。类:几十个子类,描述了不同类型的异常。非检查性异常:编译器在编译程序时不进行检查,到运行时才非检查性异常:编译器在编译程序时不进行检查,到运行时才会显现。例如会显现。例如(lr)RuntimeException,像数组越界异常、整数除,像数组越界异常、整数除以零异常等。这类异常应该通过反复测试尽量避免,不应该靠异以零异常等。这类异常应该通过反复测试尽量避免,不应该靠异常处理机制来处理,主要是由程序员经验不

3、足或思维不够缜密造常处理机制来处理,主要是由程序员经验不足或思维不够缜密造成的。成的。检查性异常:编译器在编译程序时必须进行异常处理,否则编检查性异常:编译器在编译程序时必须进行异常处理,否则编译时不能通过。例如译时不能通过。例如(lr)IOException,像数据库连接失败、用光,像数据库连接失败、用光盘时用户没插入光盘等。这类异常程序员是无法避免的,应由异盘时用户没插入光盘等。这类异常程序员是无法避免的,应由异常处理机制处理。常处理机制处理。第2页/共20页第三页,共20页。6.3 异常异常(ychng)处理机制处理机制n n异常处理的两种方式异常处理的两种方式(fngsh)(fngsh

4、)n n捕获异常捕获异常trycatchfinallytrycatchfinallyn n抛出异常抛出异常throw throw、throwsthrows创建类创建类创建对象创建对象初始化初始化Java库类中的类库类中的类SUN程序员程序员程序员程序员用户创建的类用户创建的类程序员程序员程序员程序员程序员程序员异常类异常类SUN出现异常的语句出现异常的语句JVM(自动)(自动)4处理异常时编程人员做什么?处理异常时编程人员做什么?给异常类对象给异常类对象(duxing)起名字起名字抓它抓它处理它处理它抛它抛它第3页/共20页第四页,共20页。public class ExceptionDemo

5、01 public static void main(String args)System.out.println(*计算开始计算开始*);int i =10;int j =0;int temp =i /j;System.out.println(两个两个(lin)数字相除的结果:数字相除的结果:+temp);System.out.println(*计算结束计算结束*);1.异常异常(ychng)范例范例ExceptionDemo01.java第4页/共20页第五页,共20页。trytry 可能出现异常的语句可能出现异常的语句(y(y j);j);catch(catch(异常类异常类1 1 异常

6、对象名异常对象名)异常异常1 1的处理语句的处理语句(y(y j);j);catch(catch(异常类异常类2 2 异常对象名异常对象名)异常异常2 2的处理语句的处理语句(y(y j);j);finallyfinally 一定要运行的语句一定要运行的语句(y(y j);j);关键字作用关键字作用try:捕捉异常:捕捉异常(ychng)catch:处理异常:处理异常(ychng)finally:异常:异常(ychng)的统的统一出口一出口2.异常异常(ychng)处理处理try-catch-finally6第5页/共20页第六页,共20页。public class ExceptionDemo

7、02 public static void main(String args)System.out.println(*计算开始计算开始(kish)*);int i =10;int j =0;System.out.println(*计算结束计算结束*);范例范例(fnl)ExceptionDemo02.javatry int temp =i/j;/此处产生此处产生(chnshng)了异常了异常 System.out.println(两个数字相除的结果:两个数字相除的结果:+temp);catch(ArithmeticException ae)System.out.println(出现异常了:出现

8、异常了:+ae);第6页/共20页第七页,共20页。程序在开发中不会程序在开发中不会(b hu)(b hu)只存在一个异常,肯定会同时只存在一个异常,肯定会同时存在多个异常。此时就需要使用多个存在多个异常。此时就需要使用多个catchcatch语句进行处理语句进行处理多重多重catch处理处理(chl)异常异常8编程:使用键盘输入两个数据,进行除法操作。编程:使用键盘输入两个数据,进行除法操作。分析分析(考虑异常情况考虑异常情况):没有没有(mi yu)输入参数或个数不够输入参数或个数不够数组超出绑定异常数组超出绑定异常输入的参数不是数字输入的参数不是数字数字格式化异常数字格式化异常除数为零除

9、数为零算术异常算术异常第7页/共20页第八页,共20页。public class ExceptionDemo04public static void main(String args)int i,j;tryString str1 =args0;/可能有异可能有异常常String str2 =args1;/可能有异常可能有异常i =Integer.parseInt(str1);j =Integer.parseInt(str2);int temp =i/j;/可能有异常可能有异常System.out.println(相除的结果相除的结果(ji gu):+temp);catch(Arithmetic

10、Exception e)System.out.println(算术异常:算术异常:+e);catch(NumberFormatException e)System.out.println(数字转换异常:数字转换异常:+e);catch(ArrayIndexOutOfBoundsException e)System.out.println(数组越界异常:数组越界异常:+e);catch(Exception e)System.out.println(异常:异常:+e);System.out.println(*计算结束计算结束*);9范例范例(fnl)ExceptionDemo04.java第8页/

11、共20页第九页,共20页。验证验证验证验证(ynzhng)finally(ynzhng)finally的作用的作用的作用的作用:异常的统异常的统异常的统异常的统一出口一出口一出口一出口public class ExceptionDemo03 public static void main(String args)System.out.println(*计算计算(j sun)开始开始*);int i =10;int j =2;tryint temp =i/j;System.out.println(两个数字相除的结果:两个数字相除的结果:+temp);catch(ArithmeticExcepti

12、on ae)System.out.println(出现异常了:出现异常了:+ae);finally System.out.println(不管是否出现异常,都执行此代码不管是否出现异常,都执行此代码);System.out.println(*计算计算(j sun)结束结束*);10第9页/共20页第十页,共20页。验证验证验证验证(ynzhng)finally(ynzhng)finally的作用的作用的作用的作用:异常的统异常的统异常的统异常的统一出口一出口一出口一出口tryopenDB();readDB();closeDB();catch(Exception e)System.out.pri

13、ntln(出现异常了出现异常了:+e);11tryopenDB();readDB();catch(Exception e)System.out.println(出现异常了出现异常了:+e);finally closeDB();第10页/共20页第十一页,共20页。直接打印异常类对象:直接打印异常类对象:System.out.println(e)System.out.println(e);使用使用ExceptionException类提供的一个方法:类提供的一个方法:printStackTrace()printStackTrace()(注:开发(注:开发(kif)(kif)中常用,打印异常的堆栈

14、信息)中常用,打印异常的堆栈信息)3.异常信息异常信息(xnx)的输出的输出12public class ExceptionDemo05 public static void main(String args)System.out.println(*计算计算(j sun)开始开始*);int i =10;int j =0;try int temp =i/j;/此处产生了异常此处产生了异常 System.out.println(相除的结果:相除的结果:+temp);catch(Exception e)e.printStackTrace();System.out.println(*计算计算(j s

15、un)结束结束*);第11页/共20页第十二页,共20页。4.异常(ychng)抛出throws、throw throwsthrows:如果:如果(rgu(rgu)一个方法引发了异常,但该方法本身并不对这一个方法引发了异常,但该方法本身并不对这个异常进行处理,而是交给被调用处处理。那么该方法就要用个异常进行处理,而是交给被调用处处理。那么该方法就要用throwsthrows关键字来声明。关键字来声明。例:例:public int div(int i,int j)throws Exceptionpublic int div(int i,int j)throws Exception 不含处理异常语

16、句不含处理异常语句 ;13第12页/共20页第十三页,共20页。class Math/定义除法定义除法(chf)类类public int div(int i,int j)int temp =i/j;/此处有可能出现异常此处有可能出现异常return temp;public class ThrowsDemopublic static void main(String args)Math m =new Math();/实例化实例化Math类对象类对象 System.out.println(除法除法(chf)操作:操作:+m.div(10,0);范例范例(fnl)ThrowsDemo.javathr

17、ows Exceptiontrycatch(Exception e)e.printStackTrace();/打印打印(d yn)异常异常第13页/共20页第十四页,共20页。4.异常(ychng)抛出throws、throwthrow:有:有2个功能个功能Java中异常处理是分层次的,中异常处理是分层次的,throw可以把捕获到的异常抛可以把捕获到的异常抛 到上一层,由上一层进行异常处理。到上一层,由上一层进行异常处理。格式:格式:throw 异常类对象;异常类对象;以前处理的异常都是由系统以前处理的异常都是由系统(JVM)自动实例化的,不用自动实例化的,不用new.现在,可以使用现在,可以

18、使用throw关键字在方法中手动抛出关键字在方法中手动抛出(po ch)一个异常。一个异常。第14页/共20页第十五页,共20页。范例范例(fnl)ThrowDemo02.javaclass Mathpublic int div(int i,int j)int temp =0;tryint temp=i/j;/此处有可此处有可能出现异常能出现异常catch (Exception e)throw e;return temp;public class ThrowDemo02public static void main(String args)Math m =new Math();trySyste

19、m.out.println(除法操作除法操作(cozu):+m.div(10,0);catch(Exception e)System.out.println(异常产生:异常产生:+e);第15页/共20页第十六页,共20页。public class ThrowDemo01public static void main(String args)trythrow new Exception(自己自己(zj)抛着抛着玩的。玩的。);catch(Exception e)System.out.println(e);范例范例(fnl)ThrowDemo01.java第16页/共20页第十七页,共20页。5

20、.实战(shzhn)设计一个两个整数相除的程序。设计一个两个整数相除的程序。要求要求:在计算在计算(j sun)(j sun)开始处打印开始处打印“计算计算(j sun)(j sun)开始开始”信信息息 在计算在计算(j sun)(j sun)结束处打印结束处打印“计算计算(j sun)(j sun)结束结束”信信息息 如有异常交给调用处处理如有异常交给调用处处理说明:在一般的开发中说明:在一般的开发中trycatchfinally、throw、throws联合使用联合使用(shyng)的情况是最多的。的情况是最多的。第17页/共20页第十八页,共20页。class Mathpublic in

21、t div(int i,int j)throws ExceptionSystem.out.println(*计算开始计算开始*);int temp =0;/定义局部变量定义局部变量trytemp=i/j;/此处有可能出此处有可能出现异常现异常(ychng)catch (Exception e)throw e;finally System.out.println(*计算结束计算结束*);return temp;public class ThrowDemo03public static void main(String args)Math m =new Math();trySystem.out.p

22、rintln(除法操作:除法操作:+m.div(10,0);catch(Exception e)System.out.println(异常异常(ychng)产生:产生:+e);19范例范例(fnl)ThrowDemo03.java第18页/共20页第十九页,共20页。6.4 本章(bn zhn)小结1.1.异常是导致程序中断运行的一种指令流。当异常发生时,如果异常是导致程序中断运行的一种指令流。当异常发生时,如果 没有进行处理,程序将会中断执行。没有进行处理,程序将会中断执行。2.2.异常的最大父类是异常的最大父类是ThrowableThrowable,分为两个子类,分别是,分为两个子类,分别

23、是ErrorError、Exception Exception。ExceptionException表示程序可以处理的异常;而表示程序可以处理的异常;而ErrorError表表 示示JVMJVM错误,错误,一般不由程序开发人员一般不由程序开发人员(rnyun)(rnyun)处理。处理。3.3.异常可以使用异常可以使用trycatchfinallytrycatchfinally进行处理。在进行处理。在trytry语句中捕捉语句中捕捉 异常,然后在异常,然后在catchcatch中处理异常,中处理异常,finallyfinally作为异常的统一出口作为异常的统一出口 ,不管是否发生异常都要执行,不管是否发生异常都要执行finallyfinally段代码。段代码。4.4.异常也可以不处理,而是抛出。在方法声明处使用异常也可以不处理,而是抛出。在方法声明处使用throwsthrows,表,表 示该方法不处理异常,交给被调用处处理;使用示该方法不处理异常,交给被调用处处理;使用throwthrow可以在可以在 方法中手动抛出一个异常。方法中手动抛出一个异常。20第19页/共20页第二十页,共20页。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理工具

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁