希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
河南大学软件学院
主讲:李丽
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
第6章 异常处理机制 章(1)异常概述 (2)异常的分类 (3)捕获异常 (4)声明异常 (5)定义自己的异常类
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.1异常概述 异常概述Java异常是Java提供的用于处理程序中错误的一种机制。 所谓错误是指在程序运行的过程中发生的一些异常事件(如: 除0溢出,数组下标越界,所要读取的文件不存在)。 设计良好的程序应该在异常发生时提供处理这些错误的方法, 使得程序不会因为异常的发生而阻断或产生不可预见的结果。
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.1异常概述 异常概述在Java中,一个方法的运行过程中如果发生了异常,则这个 方法(或者是Java虚拟机)生成一个代表该异常的对象(包 含了该异常的详细信息),并把它交给运行时系统。我们把 生成异常对象并把它提交给运行时系统的过程称为抛出(throw) 一个异常。 当Java运行时系统接收到异常对象时,会寻找能处理这一异 常的代码并把当前异常对象交给其处理,这一过程称为捕获 异常。
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.1异常概述 异常概述异常的抛出捕捉过程:
见TestException1.java
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.2异常的分类 异常的分类
IOException
在API文档中凡是在方 文档中凡是在方 法后面写了throws…必 法后面写了 必 须显示捕捉
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.2异常的分类 异常的分类Error:称为错误,由Java虚拟机生成并抛出,一般是和虚拟机 相关的问题,如动态链接失败、系统崩溃、虚拟机出现错误等。 这种错误无法恢复或不可捕捉,将导致应用程序中断。 Exception:所有异常类的父类,其子类对应各种可能出现的异 常事件,一般需要用户显示的声明或捕获。 RuntimeException:一类特殊的异常,如被0除、数组下标越界 等,其产生比较频繁,处理麻烦,如果显示的声明或捕获将会 对程序可读性和运行效率影响很大。因此由系统自动检测并将 它们交给缺省的异常处理程序(用户可不必对其处理)。见TestException2.java
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.3捕获异常 捕获异常Java的异常处理是通过3个关键词来实现的:try-catch-finally。用try 来监视执行一段程序,如果出现异常,系统就会抛出(throws) 异常,可以根据异常的类型来捕捉(catch)相应的异常并处理它, 或最后(finally)由缺省处理方法来处理。
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.3捕获异常 捕获异常
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.3.1 try语句 语句使用try语句时需要注意以下两点: 不要把所有的业务逻辑代码全部放在try语句中,因为使用try 语句时其效率要远远低于正常的代码执行效率,放置在try语 句中的代码往往是一些核心的容易出现异常的代码; 在try语句中声明变量时,该变量的作用域为此try语句内部, try try 如果试图在程序的其它任何地方访问该变量都是错误,因此 变量声明的位置至
关紧要。
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.3.2 catch语句 语句一个try块后面只有一个catch块会被执行,绝不可能有多个 catch块被执行。 形式: catch(异常类型 对象) { } 运行时系统通过参数值把被抛弃的异常对象传递给catch语句。 程序设计中要根据具体的情况来选择catch语句的异常处理类型, 一般应该按照try代码段中异常可能产生的顺序及其真正类型 进行捕获和处理,尽量避免选择最一般的异常类型作为catch语 句中指定要捕获的类型。 TestException3.java
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.3.3 finally语句 语句finally语句为异常处理提供一个统一的出口,无论try所指定的 程序块中是否抛出异常,finally所指定的代码都要被执行,它提供 了统一的出口。 通常在finally语句中可以进行资源的清除和释放工作,如关闭 打开的文件、删除临时文件、关闭打开的数据库连接等。 finally非必须,在异常捕获中,try块必须有,catch和finally可选, 但是至少有其中一个。
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.3.3 finally语句 语句捕捉SomeException2时: 没有捕获到异常时:
除非在try块 除非在 块、catch块中调用了 块中调用了 System.exit(1)来退出虚拟机, 来退出虚拟机, 来退出虚拟机 否则finally总会被执行。 总会被执行。 否则 总会被执行
希望能够帮助大家更好的复习和掌握JAVA,祝大家JAVA考试顺利,告别挂科!
6.4声明异常 声明异常如果在一个方法中 生成了异常,但是 该方法并不处理它 产生的异常,而是 沿着调用层次向上 …… 此处隐藏:767字,全部文档内容请下载后查看。喜欢就下载吧 ……