第6章异常的捕获及处理学习培训课件

上传人:清**** 文档编号:328778393 上传时间:2022-07-31 格式:PPT 页数:20 大小:608.50KB
返回 下载 相关 举报
第6章异常的捕获及处理学习培训课件_第1页
第1页 / 共20页
第6章异常的捕获及处理学习培训课件_第2页
第2页 / 共20页
第6章异常的捕获及处理学习培训课件_第3页
第3页 / 共20页
第6章异常的捕获及处理学习培训课件_第4页
第4页 / 共20页
第6章异常的捕获及处理学习培训课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《第6章异常的捕获及处理学习培训课件》由会员分享,可在线阅读,更多相关《第6章异常的捕获及处理学习培训课件(20页珍藏版)》请在金锄头文库上搜索。

1、第第6章章 异常的捕获及处理异常的捕获及处理6.1 异常简介异常简介6.2 异常类的继承结构异常类的继承结构6.3 异常处理机制异常处理机制6.4 异常处理异常处理6.5 本章小结本章小结6.1 异常简介异常简介在程序运行过程中,可能会遇到一些非正常的在程序运行过程中,可能会遇到一些非正常的状况,这种非正常状况对程序来说是一种异常状况,这种非正常状况对程序来说是一种异常例如:除以零、数组越界、试图打开一个根本例如:除以零、数组越界、试图打开一个根本不存在的文件等。不存在的文件等。后果:如果不对异常进行正确的处理,则可能后果:如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失

2、。所导致程序的中断执行,造成不必要的损失。所以在程序的设计中必须考虑到各种以在程序的设计中必须考虑到各种异常的发生异常的发生,并做好并做好相应的处理相应的处理。一个好的程序,整体的一个好的程序,整体的1/3是在处理要完成的真是在处理要完成的真正任务,而正任务,而2/3是在处理异常,这样的程序才是是在处理异常,这样的程序才是最强壮的。最强壮的。6.2 异常类的继承结构异常类的继承结构ObjectThrowableRuntimeException Error Exception IOException异常类异常类查阅API文档6.3 异常处理机制异常处理机制两种处理异常的机制两种处理异常的机制捕获

3、异常捕获异常抛出异常抛出异常异常类异常类对象的产生对象的产生:程序产生异常时,系统:程序产生异常时,系统(JVM)会自动实例化一个异常类的对象,)会自动实例化一个异常类的对象,对象中保存了具体的异常描述信息。对象中保存了具体的异常描述信息。trycatchfinally模型模型throw、throws6.4 异常处理异常处理定义类定义类 创建对象创建对象初始化初始化Java库类中的库类中的类类SUN程序员程序员程序员程序员用户创建的类用户创建的类程序员程序员 程序员程序员程序员程序员异常类异常类JVM出错的方法出错的方法出错的方法出错的方法处理异常处理异常时编程人员做时编程人员做什么?什么?给

4、异常类对象起名字给异常类对象起名字抓它抓它处理它处理它抛它抛它public class ExceptionDemo01 public static void main(String args)System.out.println(*计计算开始算开始*);int i =10;int j =0;int temp =i /j;System.out.println(两个数字相除的两个数字相除的结结果:果:+temp);System.out.println(*计计算算结结束束*);1.异常范例异常范例ExceptionDemo01.javatry 可能出现异常的语句可能出现异常的语句;catch(异常类

5、异常类1 异常对象异常对象)异常异常1的处理语句的处理语句;catch(异常类异常类2 异常对象异常对象)异常异常2的处理语句的处理语句;finally 一定要运行的语句一定要运行的语句;关键字的作用关键字的作用try:捕捉异常捕捉异常catch:处理异常处理异常finally:异常的统一出口异常的统一出口2.异常处理异常处理try-catch-finally模型模型范例范例ExceptionDemo02.javapublic class ExceptionDemo02 public static void main(String args)System.out.println(*计计算开始算

6、开始*);int i =10;int j =0;try int temp =i/j;/此此处产处产生了异常生了异常 System.out.println(两个数字相除的两个数字相除的结结果:果:+temp);catch(ArithmeticException ae)System.out.println(出出现现异常了:异常了:+ae);System.out.println(*计计算算结结束束*);验证验证finally的作用的作用:异常的统一出口异常的统一出口public class ExceptionDemo03 public static void main(String args)Sys

7、tem.out.println(*计计算开始算开始*);int i =10;int j =2;tryint temp =i/j;System.out.println(两个数字相除的两个数字相除的结结果:果:+temp);catch(ArithmeticException ae)System.out.println(出出现现异常了:异常了:+ae);finally System.out.println(不管是否出不管是否出现现异常,都异常,都执执行此代行此代码码);System.out.println(*计计算算结结束束*);程序在开发中不会只存在一个异常,肯定会同时程序在开发中不会只存在一个异

8、常,肯定会同时存在多个异常。此时就需要使用存在多个异常。此时就需要使用多个多个catch语句语句进行处理。进行处理。例:使用键盘输入两个数据,进行除法操作。例:使用键盘输入两个数据,进行除法操作。分析:分析:没有输入参数或个数不够没有输入参数或个数不够数组超出绑定异常数组超出绑定异常输入的参数不是数字输入的参数不是数字数字格式化异常数字格式化异常除数为零除数为零算术异常算术异常范例范例ExceptionDemo04.java多重多重catch处理异常处理异常public class ExceptionDemo04 public static void main(String args)int

9、i,j;tryString str1 =args0;/接收第一个参数接收第一个参数String str2 =args1;/接收第二个参数接收第二个参数i =Integer.parseInt(str1);j =Integer.parseInt(str2);int temp =i/j;/此此处产处产生了异常生了异常System.out.println(“相除的相除的结结果:果:”+temp);catch(ArithmeticException e)System.out.println(算算术术异常:异常:+e);catch(NumberFormatException e)System.out.pr

10、intln(数字数字转换转换异常:异常:+e);catch(ArrayIndexOutOfBoundsException e)System.out.println(数数组组越界异常:越界异常:+e);catch(Exception e)System.out.println(异常:异常:+e);System.out.println(*计计算算结结束束*);直接直接打印异常对象打印异常对象 System.out.println(e)使用使用Exception类提供的一个方法类提供的一个方法 printStackTrace()(开发中常用(开发中常用专门打印异常信息专门打印异常信息)3.异常信息的输

11、出异常信息的输出public class ExceptionDemo05 public static void main(String args)System.out.println(*计计算开始算开始*);int i =10;int j =0;try int temp =i/j;/此此处产处产生了异常生了异常 System.out.println(相除的相除的结结果:果:+temp);catch(Exception e)e.printStackTrace();System.out.println(*计计算算结结束束*);4.throw、throwsthrows:如果一个方法引发了异常,但方法

12、:如果一个方法引发了异常,但方法本身并不对该异常进行处理,而是交给被调本身并不对该异常进行处理,而是交给被调用处处理。那么该方法就要用用处处理。那么该方法就要用throws关键字关键字声明声明。throw:表示:表示在方法中在方法中手工抛出一个异常。手工抛出一个异常。在一般的开发中在一般的开发中trycatchfinally、throw、throws联合使用的情况是最多的。联合使用的情况是最多的。class Mathpublic int div(int i,int j)throws Exceptionint temp =i/j;/此此处处有可能出有可能出现现异常异常return temp;pu

13、blic class ThrowsDemopublic static void main(String args)Math m =new Math();/实实例化例化Math类对类对象象try System.out.println(除法操作:除法操作:+m.div(10,0);catch(Exception e)e.printStackTrace();/打印异常打印异常范例ThrowsDemo.javapublic class ThrowDemopublic static void main(String args)trythrow new Exception(自己抛着玩的。自己抛着玩的。);

14、catch(Exception e)System.out.println(e);范例ThrowDemo.java5.实战实战设计一个能进行两个整数相除的设计一个能进行两个整数相除的方法方法.要求要求:在计算开始处打印在计算开始处打印“计算开始计算开始”信息信息 在计算结束处打印在计算结束处打印“计算结束计算结束”信息信息 如有异常交给调用处处理如有异常交给调用处处理范例范例ThrowDemo03.javaclass Mathpublic int div(int i,int j)throws ExceptionSystem.out.println(*计计算开始算开始*);int temp =0;

15、/定定义义局部局部变变量量trytemp=i/j;/此此处处有可能出有可能出现现异常异常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.println(除法操作:除法操作:+m.div(10,0);catch(Exception e)System.out.println(异常异常产产生:生:+e);6.5

16、 本章小结本章小结1.异常是导致程序中断运行的一种指令流。当异异常是导致程序中断运行的一种指令流。当异常发生时,如果没有进行处理,程序将会中断执常发生时,如果没有进行处理,程序将会中断执行。行。2.异常可以使用异常可以使用trycatch进行处理,也可以使进行处理,也可以使用用trycatchfinally进行处理。在进行处理。在try语句中捕语句中捕捉异常,然后在捉异常,然后在catch中处理异常,中处理异常,finally作为作为异常的统一出口,不管是否发生异常都要执行此异常的统一出口,不管是否发生异常都要执行此段代码。段代码。3.异常的最大父类是异常的最大父类是Throwable,其分为两个子,其分为两个子 类,分别是类,分别是Exception、Error。Exception表示表示程序可以处理的异常;而程序可以处理的异常;而Error表示表示JVM错误,错误,一般不由程序开发人员处理。一般不由程序开发人员处理。4.发生异常后,发生异常后,JVM会自动产生一个异常类的实会自动产生一个异常类的实例化对象,并匹配相应的例化对象,并匹配相应的catch语句中的异常类语句中的异常类型,

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

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号