【教学课件】第06章异常处理.ppt

上传人:小飞机 文档编号:5657563 上传时间:2023-08-06 格式:PPT 页数:24 大小:368.97KB
返回 下载 相关 举报
【教学课件】第06章异常处理.ppt_第1页
第1页 / 共24页
【教学课件】第06章异常处理.ppt_第2页
第2页 / 共24页
【教学课件】第06章异常处理.ppt_第3页
第3页 / 共24页
【教学课件】第06章异常处理.ppt_第4页
第4页 / 共24页
【教学课件】第06章异常处理.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《【教学课件】第06章异常处理.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第06章异常处理.ppt(24页珍藏版)》请在三一办公上搜索。

1、第6章 异常处理,2,学习内容,异常的概念异常处理的基本过程异常的定义、抛出、捕获和处理掌握程序设计中使用异常处理的基本原则,3,程序中的错误处理,程序错误的类型语法错误运行错误运行错误的处理方式终止程序的运行。使用错误检测代码,通过返回值来判断是否出错,然后处理。On error goto label异常处理机制,4,1 异常的概念,异常(Exception)是程序运行过程中出现的影响语句正常运行顺序的意外或特殊事件。异常对象Java中用对象来表示异常,程序中出现异常时,会产生异常对象,其中包含异常的类型和错误出现时程序的状态信息。,5,异常的分类,按处理方式受查异常(Checked Exc

2、eption)非受查异常(Unchecked Exception)按产生原因JVM异常(Error)运行时异常(Runtime Exception)应用程序异常(Application Exception),6,异常类的层次结构,7,异常处理,异常处理(Exception Handling)程序中对出现的异常进行的检测和处理。异常处理程序(Exception Handler)异常处理程序的内容定义异常抛出异常捕获异常处理异常,8,2 定义异常,Java中异常是以类的形式定义的。系统定义的异常运行时异常:RuntimeException的子类应用程序异常:Exception的除RuntimeEx

3、ception外的其它子类JVM异常:Error的子类用户处定义的异常对于用户程序出现的特定的错误,需要用户自定义异常类,9,自定义异常类的例子,class Account/帐户类 private String ID;/帐户账号 private double balance;/帐户余额 public Account(String aID,double b)ID=aID;balance=b;public void drawing(double m)/取款方法 balance=balance-m;/余额减取款金额 public String toString()return ID;,10,/自定义

4、异常类class NotEnoughBalanceException extends Exception Account account;/存放发生异常的帐户对象 NotEnoughBalanceException(Account a)/构造方法 super(余额不足!);account=a;public String toString()return 帐户+account+的余额不足!;,11,自定义异常类时注意的问题,选择恰当的父类。为异常定义合适的域和方法,必要时重载或覆盖父类的方法。自定义的异常类应该也组织为层次结构。,12,3 抛出异常,程序运行过程中,如果产生了一个可以识别的错误,

5、就会创建一个与该错误相对应的异常类的对象实例并交给运行系统,这个过程称为抛出异常。,13,系统自动抛出异常,所有系统定义的运行时异常(RuntimeException及其子类)可以由系统自动抛出。,class ThrowExceptionTest public static void main(String args)(异常发生前.);System.out.println(5/0);/此处抛出异常(异常发生后.);,14,使用throws关键字抛出异常,Java强制要求程序员处理程序中出现的应用程序异常,即受查异常。如果希望在可能产生应用程序异常的方法中不对产生的异常进行处理,而是将产生的异常

6、抛给调用该方法的外层方法来处理,则可以在定义方法时使用throws关键字。throws关键字的用法修饰符 返回类型 方法名(参数表)throws 异常类名列表/语句,15,throws子句使用例子,import.*;class URLAnalysis public static void main(String args)throws MalformedURLException if(args.length=1)URL url=new URL(args0);/可能抛出异常 System.out.println(URL:+url.toExternalForm()+n+文件:+url.getFil

7、e()+n+主机:+url.getHost()+n+端口:+url.getPort()+n+协议:+url.getProtocol()+n+标记:+url.getRef();else(缺少命令行参数:);,16,使用throw语句抛出异常,throw语句用于在程序员在程序中主动抛出一个异常对象。其语法形式如下:throw 表达式;表达式必须是可抛出类(Throwable及其子类)throw语句使用的必须满足下面条件之一:表达式是非受查异常,Error或RuntineException;表达式是受查异常,Exception的其它子类,则:throw语句或者包含在try-catch结构中;thro

8、w语句或者处于有throws子句中声明了表达式类型的异常的方法中。,17,throw语句的例子,public void drawing(double m)throws NotEnoughBalanceException if(balancem)/检测余额是否不足/余额不足,抛出相应异常 throw new NotEnoughBalanceException(this);else/余额足够,减去取款金额 balance=balance-m;,18,4 捕获和处理异常,Java 的异常捕获和处理由try-catch-finally语句完成。其语法形式如下:try/可能发生异常的语句catch(异常

9、类 参数名)/异常处理语句/可以有多个catch子句finally/语句,19,try-catch-finally 结构的执行流程,20,异常捕获的原则,catch子句通过被抛出异常的类型是否与其参数类型匹配来捕获异常。有多个catch子句时,按照catch子句的排列顺序依次检查是否可以捕获,并由第一个匹配的catch子句捕获并处理。一个异常对象被捕获和处理后,就消失了。,21,使用try-catch-finally结构的例子,class DivTest public static void main(String args)int r,n=10,d=0;try r=n/d;/如果d=0,则抛

10、出异常 System.out.println(r=+r);catch(ArithmeticException e)/捕获异常(异常类型:+e.getClass();(异常信息:+e.getMessage();finally(除法运算完毕!);System.out.println(try语句的后续语句!);,22,异常处理的嵌套,23,异常再抛出,为了使异常对象被处理之后仍然存在,可以将处理后异常重新抛出。使用语句如下:throw 异常对象异常对象的再抛出一般是在catch结构中。,24,异常处理嵌套和异常再抛出的例子,class exTest public static void main(String args)try try throw new Exception(Exception Example.);catch(Exception e)(内层捕获!+e.getMessage();throw e;catch(Exception e)(外层捕获!+e.getMessage();,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号