《异常处理机制》PPT课件

上传人:san****019 文档编号:22792033 上传时间:2021-06-01 格式:PPT 页数:25 大小:370.31KB
返回 下载 相关 举报
《异常处理机制》PPT课件_第1页
第1页 / 共25页
《异常处理机制》PPT课件_第2页
第2页 / 共25页
《异常处理机制》PPT课件_第3页
第3页 / 共25页
点击查看更多>>
资源描述
异常处理机制 7 例外处理机制2 主要内容4引入异常机制4Java的异常处理异常的抛出、捕获与处理4自定义异常4使用finally 7 例外处理机制3 对错误的处理4程序执行的错误4处理错误向用户通知错误保存全部工作让用户适当地退出程序4异常处理 JAVA检测和报告错误的机制 7 例外处理机制4 处理错误的方式4函数式编程中,直接检测调用函数返回值以确定错误内容,存在的问题检测错误返回的编码工作量大,逻辑上复杂返回的错误信息有限,无详细的位置、性质等4异常处理 throws,使不能正常结束的方法抛出一个封装了错误信息的对象异常使用异常处理程序处理异常错误 7 例外处理机制5 异常处理机制4 Java中定义了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当Java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系统的损害,从而保证了整个程序运行的安全性。这就是Java的异常处理机制 7 例外处理机制6 异常处理机制4当方法执行过程中出现错误而干扰了程序流程时,会抛出一个异常,即构造出一个异常类的对象。4异常类对象代表当前出现的一个具体异常,该对象封装了异常的有关信息。4异常分为系统定义异常和用户自定义异常。4异常抛出方式:自动抛出(系统定义异常)用throw语句抛出(用户定义异常)4方法中的异常处理:捕获异常,就地解决,并使程序继续执行 。将异常向外转移,即将异常抛出方法之外,由调用该方法的环境去处理。 7 例外处理机制7 异常类Throwable类Exception类Error类自定义异常类ArrayIndexOutOfBoundsException类NullPointerException类 7 例外处理机制8 异常类4 Exception类定义的是较轻的错误,你可以编写代码来处理这类错误,并继续程序的执行。4 Exception原因:打开的文件不存在。网络连接中断。操作数超过允许范围。想要加载的类文件不存在。试图通过空的引用型变量访问对象。数组下标越界。4 Error类定义的错误是致命性错误,一般会导致程序停止执行。 7 例外处理机制9 Exception类4构造方法 Exception() Exception(String 异常描述)4 Exception类的方法均继承自Throwable类4方法 String getMessage() 返回异常描述。 String toString() 返回异常对象详细信息。 void printStackTrace() 打印异常发生的路径,即引起异常的方法调用嵌套序列。 7 例外处理机制10 系统定义的异常类4 ClassNotFoundException 未找到要加载的类4 ArrayIndexOutOfBoundsException 数组越界使用4 FileNotFoundException 未找到指定的文件或目录4 IOException 输入、输出错误4 NullPointerException 引用空的尚无内存空间的对象 系统将常见错误予 定义为若干异常类 当出现异常时自动 抛出 7 例外处理机制11 系统定义的异常类4 ArithmeticException 算术错误,如除数为04 InterruptedException 一线程在睡眠、等待或其他原因暂停时被其他线程打断4 UnknownHostException 无法确定主机的IP地址4 SecurityException 安全性错误,如Applet欲读写文件4 MalformedURLException URL格式错误 7 例外处理机制12 用户定义的异常类4用户自定义异常主要用来处理用户程序中特定的逻辑 运行错误。 4定义异常类 class MyExp extends Exception /或继承其他异常类 /定义新的属性 /重载构造方法 例: MyExp(String msg) super(msg) / 重载原方法,或定义新方法 4抛出异常类 : throw 异常类对象 ; 例: throw new MyExp(“年龄超过规定”) ; 例: throw new Exception() ; 7 例外处理机制13 异常的产生4自动抛出异常运行异常程序运行中可自动由Java解释器引发并处理的异常;编程时不需捕获或声明。 如:除以0、下标越界、指针例外等非运行异常可在编译期由编译器确定某方法是否会发生此类异常;必须编程时捕获或声明 如:IOException, InterruptedException 7 例外处理机制14 异常的产生4编程抛出异常:在程序的相应部分抛出异常: throw new XXXException(); throw new XXXException(String describe);4例:String readData() throws EOFException. throw new EOFException(“error”);. 7 例外处理机制15 4警戒区:可能会引起异常的代码段 try 警戒区代码 /抛出例外 catch(ExceptType e) /捕获例外 例外处理代码/异常处理 后续语句4若try块中出现异常,则控制转向下面的异常处理部 分,然后执行后续语句。4若try块中没有异常,则try块执行完,控制转向后续 语句。异常处理 7 例外处理机制16 多个异常的处理4可用一组并列的catch块处理多异常情况try . . . catch( 异常类1 e1) . . . catch( 异常类2 e2) . . . . . .4匹配规则:抛出对象与catch参数类型相同抛出对象为catch参数类的子类按先后顺序捕获(注意catch块书写时的排列顺序: 先具体、后一般),但只捕获一次。 7 例外处理机制17 异常处理过程4当遇到关键字 throw 时就抛出一个异常4将控制转移到相关的 catch 块中处理之4如果产生异常的方法本身没有相应catch 语句块,则应有throws语句声明例外4退出当前方法并转向上一级调用此方法的方法的 catch 语句块4若始终没有catch块来处理则由运行系统处理 7 例外处理机制18 例4例:ExceptionMethods.java 抛出捕获处理异常的各方法 7 例外处理机制19 public class ExceptionMethods public static void main(String args) try /抛出例外 throw new Exception(Heres my Exception); catch(Exception e) /捕获例外 /处理例外 System.out.println(Caught Exception); System.out.println(e.getMessage(): + e.getMessage(); System.out.println(e.toString(): + e.toString(); System.out.println(e.printStackTrace():); e.printStackTrace(); /end of main() /end of class 7 例外处理机制20 自定义异常类4声明一个新的异常类,该异常类必须从Java已有定义的异常类继承,如Exception、IOException等4为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息。4例:Inheriting.java 7 例外处理机制21 class MyException extends Exception /自定义例外 public MyException() public MyException(String msg) super(msg); public class Inheriting public static void f( ) throws MyException System.out.println(Throwing MyException from f(); throw new MyException(); /抛出自定义例外 public static void main(String args) try f(); /处理自定义例外 catch(MyException e) e.printStackTrace(); /end of main() /end of class Inheriting 7 例外处理机制22 异常转移4异常总是发生在方法执行过程中。4当异常不处理时会向方法外转移。4系统定义的异常自动向外转移。4用户自定义的异常要转移需要在方法头声明一下 String readData() throws MyExp . throw new MyExp(“年龄超过规定”); 7 例外处理机制23 finallytry.catch(A a).finally4finally: 不论是否有异常抛出,均执行4只有当try块中执行System.exit()时,会立即结束程序。4用处:一般用来进行一些“善后”操作,如系统资源的释放、文件的关闭等4例:FinallyWorks.java 7 例外处理机制24 public class FinallyWorks static int count = 0; public static void main(String args) while(true) try / count is zero first time: if(count+ = = 0) throw new Exception(); System.out.println(No exception); catch(Exception e) System.out.println(Exception thrown); finally /是否抛出例外都会执行 System.out.println(in finally clause); if(count = = 2) break; / out of while /end of while /end of main() /end of class 7 例外处理机制25 课后作业4 P116. 第10、11、12题
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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