JAVA的异常处理机制.ppt

上传人:牧羊曲112 文档编号:6509906 上传时间:2023-11-07 格式:PPT 页数:19 大小:285KB
返回 下载 相关 举报
JAVA的异常处理机制.ppt_第1页
第1页 / 共19页
JAVA的异常处理机制.ppt_第2页
第2页 / 共19页
JAVA的异常处理机制.ppt_第3页
第3页 / 共19页
JAVA的异常处理机制.ppt_第4页
第4页 / 共19页
JAVA的异常处理机制.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《JAVA的异常处理机制.ppt》由会员分享,可在线阅读,更多相关《JAVA的异常处理机制.ppt(19页珍藏版)》请在三一办公上搜索。

1、第6章 Java的异常处理机制,主要解决的问题:1、什么是错误与异常?2、造成Java异常的有哪些原因?3、什么是抛出?什么是捕获?4、Java有哪些异常对象呢?5、在程序中使用什么语句结构来处理异常呢?6、能否自己创建异常对象呢?,本章主要内容,1.Java异常的概念2.Java异常的处理方法3.总结提高,6.1 Java异常的概念,Java的异常处理机制是用来处理程序运行时的错误的有效机制,以往需要由程序员完成的程序出错情况的判别,在Java中改为由系统承担。通过系统抛出的异常,程序可以很容易地捕获并处理发生的异常情况。,6.1.1 错误与异常,根据错误的性质将运行错误分为两种类型:1错误

2、 2异常,6.1.2 Java异常,异常发生的原因有以下三种:1Java 虚拟机检测到了非正常的执行状态 2Java程序代码中的throw语句被执行。3异步异常发生。,6.2 Java异常的处理方法,1.trycatchfinally语句2.使用throw语句抛出异常对象3.使用throws子句抛出方法中的异常4.finally语句的作用5.创建自己的异常类,6.3 总结提高,6.3.1 Java的异常处理机制 1抛出异常Java是这样规定的:当语义限制被违反时,将会抛出(throw)异常,即产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。2捕获

3、异常异常抛出后,运行时系统从生成异常对象的代码开始,沿方法的调用栈进行查找,直到找到包含相应处理的方法代码,并把异常对象交给该方法,称为捕获(catch)异常。,6.3.2 Java提供的异常类,Java中的异常类具有层次结构组织。如图所示。,6.3.3 Exception异常类的子类,(1)RuntimeException运行时异常类(2)NoSuchMethodException方法未找到异常(3)java.awt.AWTException图形界面异常类(4)java.io.TOException输入输出异常类(5)Exception异常类的其它子类,(1)RuntimeException

4、类主要包括以下异常子类:,ArithmeticException算术异常类;ArrayStoreException数组下标越界异常类;ClassCastException类型强制转换异常类;IndexOutOfBoundsException下标越界异常类;NullPointerException空指针异常类;SecurityException违背安全原则异常类。,(2)java.io.TOException类的子类有:,IOException:申请I/O操作没有正常完成。EOFException:在输入操作正常结束前遇到了文件结束符。FileNotFoundException:在文件系统中,没

5、有找到由文件名字符串指定的文件。,(3)Exception异常类的其它子类:,EmptyStackException;NoSuchFieldException;NoSuchMethodException;ClassNotFoundException;CloneNotSupportedException;IllegalAccessException;InstantiationException;InterruptedException。,6.3.4 Error错误类的子类,(1)VirtualMachineError虚拟机错误OutOfMemoryError内存溢出错误StackOverflow

6、Error栈溢出错误(2)LinkageError链接错误(3)NoClassDefNotFoundError类定义未找到错误(4)java.awt.AWTError图形界面错误,6.3.5 编译时对异常情况的检查,1可检测类和不可检测类 不可检测的异常类是RuntimeException及其子类、Error及其子类,其他的异常类则是可检测的类。标准Java API定义了许多异常类,既包括可检测的,也包括不可检测的。由程序定义的异常类也可以包含可检测类和不可检测类。,2可检测异常的处理,在编译时,编译器分析哪些方法会产生可检测的异常,然后检查方法中的可检测异常的处理部分。例如,类Thread的

7、方法sleep定义如下:public static void sleep(long millis)throws InterruptedException,3不可检测的异常(运行时异常类),编译器对不可检测的异常类不进行检查。因为Java的设计者认为检测这些异常对Java程序的正确性方面帮助不大,而且这种情况发生的原因很多。对每一种情况都进行处理会很麻烦,所以这些异常在编译时不检查。因为这种错误可能发生在程序中的许多地方,恢复起来很困难或者根本不可能恢复。解释器在执行程序时会对出现异常的程序给出异常报告。,上机练习,1.下面的程序输出是什么?说出理由。并上机验证结果。public class Q

8、1 public static void main(String args)try throw new MyException();catch(Exception e)System.out.println(Its caught!);finally System.out.println(Its finally caught!);class MyException extends Exception AIts finally caught!BIts caught!CIts caught!D无输出 Its finally caught!,2.下面程序中在oneMethod()方法运行正常的情况下将显

9、示什么?说出理由。并上机验证结果。public void test()try oneMethod();System.out.println(情况 1);catch(ArrayIndexOutOfBoundsException e)System.out.println(情况2);catch(Exception e)System.out.println(情况3);finally System.out.println(finally);A.情况1 B.情况 2 C.情况3 D.finally,3.给出下面的不完整的方法:1)2)success=connect();3)if(success=-1)4)

10、throw new TimedOutException();5)6)TimedOutException不是一个RuntimeException运行时异常类。下面的哪些声明可以被加入第一行完成此方法的声明,说明理由。并上机验证结果。A.public void method()B.public void method()throws Exception C.public void method()throws TimedOutException D.public void method()throw TimedOutException E.public throw TimedOutException void method(),

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号