3.7 Java的异常处理机制.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

第 7 章 异常处理. 立体化教材计算机系列 — 《 Java 程序设计》 2 目 录 重点与难点点拨 经典练习题 异常处理机制 异常.
Java技术与应用 -Java基本语法 (第3章) 西安交大 卫颜俊 2008年11月
全国二级Java考试中的几个难点 输入输出流和文件处理 Java的多线程机制 Applet类与Applet小程序 Java的异常处理.
Exception子类的继承关系 Exception ClassNotFoundException
Java程序设计 第6章 异 常 处 理.
Oracle数据库 Oracle 子程序.
第14章 c++中的代码重用.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
第九章 字符串.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
Java Applet 介绍.
Java基础 JavaSE异常.
第七章 异常.
抽象类/接口 与异常处理机制 主讲:赖国荣 QQ:
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第 14 章 例外處理.
继承性 2、继承 为什么会有继承? 父类和子类,子类继承(拥有)父类所有的数据和方法,同时子类可以有新的数据和方法,“青出于蓝,而胜于蓝”
Java语言程序设计 第五部分 Java异常处理.
第6章 异常的捕获及处理 6.1 异常简介 6.2 异常类的继承结构 6.3 异常处理机制 6.4 异常处理 6.5 本章小结.
第14讲 异常处理 1/.
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第5章 异常处理 王德俊 上海交通大学继续教育学院.
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
刘胥影 东南大学计算机学院 面向对象程序设计1 2010~2011第3学期 刘胥影 东南大学计算机学院.
异常及处理.
动态规划(Dynamic Programming)
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第二章 登录UNIX操作系统.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
姚金宇 MIT SCHEME 使用说明 姚金宇
分裂对象模型 C++ otcl.
第12章 异常处理 C++自身有着非常强的纠错能力,发展到如今,已经建立了比较完善的异常处理机制. C++的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句、函数结构和类,致使编译程序无法进行。另一种是运行时发生的错误,一般与算法有关。 关于语法错误, C++编译器的报错机制可以让我们轻松地解决这些错误;
第4章 Excel电子表格制作软件 4.4 函数(一).
3.16 枚举算法及其程序实现 ——数组的作用.
Chapter 18 使用GRASP的对象设计示例.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
辅导课程十五.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Java程序设计 第17章 异常和断言.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第6章 异常处理 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第1章 C++程序设计基础 网络游戏开发-C++程序设计.
Presentation transcript:

3.7 Java的异常处理机制

目录 CONTENTS 3.7.1 异常类的定义 异常的处理 3.7.2

3.7.1 异常类的定义

3.7.1 异常类的定义 编程中的错误 编程中的错误分为编译错误和运行错误。 编译错误: 3.7.1 异常类的定义 编程中的错误分为编译错误和运行错误。 编译错误: 是程序由于语法的原因无法通过由源代码到目标码的编译而产生的错误。 运行错误: 系统错误:引发操作系统问题的错误,如死循环、死机; 逻辑错误:无法实现设计意图和功能的错误,如算法考虑不周、边界条件不正确。 编程中的错误

3.7.1 异常类的定义 Java的异常 所谓异常就是程序运行时可能出现的一些错误。Java中的异常是一种特殊的错误运行对象,又称例外,对应着Java语言特定的运行错误处理机制。 为了能够及时有效地处理程序中的运行错误,Java引入了异常和异常类,异常是异常类的对象。 一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,确保不会产生死机、死循环或其它对操作系统的损害,保证整个程序运行的安全性。

3.7.1 异常类的定义 异常类结构与组成 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出), 3.7.1 异常类的定义 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出), Throwable位于 java.lang包中,有两个重要的子类: Exception(异常)和 Error(错误)。 异常类结构与组成 Error(错误): 是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。 Exception(异常):  是程序本身可以处理的异常。Exception 类有一个重要的子类 RuntimeException,RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。

3.7.1 异常类的定义 异常类结构与组成 每一种异常类对应一种特定的错误; 异常类都是系统Exception类的子类。

3.7.1 异常类的定义 Java的Exception类 Exception类的两个构造方法: public Exception(); 3.7.1 异常类的定义 Exception类的两个构造方法: public Exception();    public Exception(String s); //s是对该例外所对应的错误的描述。 Java的Exception类 从父类Throwable继承的常用方法: 1) public String toString(); 该方法返回描述当前Exception类信息的字符串。 2) public void printStackTrace(); 该方法的功能是完成一个打印操作,在屏幕上输出当前例外对象 的堆栈使用轨迹,即程序先后调用了哪些对象或类的方法,使得运行过程中产生了这个例外对象。

3.7.1 异常类的定义 Java的 运行异常 Java中常见的系统定义的运行异常与所对应的系统运行错误一览表 系统定义的运行异常 3.7.1 异常类的定义 Java的 运行异常 Java中常见的系统定义的运行异常与所对应的系统运行错误一览表 系统定义的运行异常 异常对应的系统运行错误 ClassNotFoundException 未找到欲装载使用的类 ArrayIndexOutOfBoundsException 数组越界使用 FileNotFoundException 未找到指定的文件或目录 IOException 输入、输出错误 ArithmeticException 算术错误,如除数为0 NullPointerException 引用了未被初始化的对象

3.7.1 异常类的定义 用户自定义的异常类 用户自定义异常的作用: 用来处理程序中特定的逻辑运行错误。 创建方法: 3.7.1 异常类的定义 用户自定义的异常类 用户自定义异常的作用: 用来处理程序中特定的逻辑运行错误。 创建方法: 1)声明一个新的异常类,使之以Exception类或其他某个已经存在的系统异常类或用户异常类为父类; 2)为新的异常类定义属性和方法,或重写父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息。 定义足够多的异常类是构建一个稳定完善的应用系统的重要基础之一。

3.7.1 异常类的定义 用户自定义异常类示例

3.7.2 异常的处理

3.7.2 异常类的处理 Java的异常处理机制 在 Java 应用程序中,异常处理机制包括:抛出异常+捕捉异常 3.7.2 异常类的处理 在 Java 应用程序中,异常处理机制包括:抛出异常+捕捉异常 Java的异常处理机制 抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。 捕获异常:在方法抛出异常之后,运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适的异常处理器。当未找到合适的异常处理器,则运行时系统终止,Java程序也终止。

3.7.2 异常的处理 Java程序在运行时,如果由于可识别的错误,系统就产生一个与该错误相对应的异常类的对象,这个过程就是异常的抛出。 异常的抛出 1)系统自动抛出的异常 所有系统定义的运行异常都可以由系统自动抛出。 Java规定: 运行时异常将由Java运行时系统自动抛出,允许应用程序忽略运行时异常。但对于可查异常必须捕捉、或者声明抛出。

3.7.2 异常的处理 系统自动抛出的异常示例

3.7.2 异常的处理 异常的抛出 2)语句抛出的异常 任何Java程序都可以通过 throw 语句抛出异常。 3.7.2 异常的处理 2)语句抛出的异常 任何Java程序都可以通过 throw 语句抛出异常。 异常的抛出 当一个方法要抛出可查异常时,必须在方法头使用 throws 子句声明。 用户自定义的异常系统不能自动抛出,需要编程者在程序中的合适位置创建自定义异常的对象,并利用 throw 语句将这个新异常对象抛出。

3.7.2 异常的处理 异常的抛出 方法抛出异常的语法: [修饰符] 返回类型 方法名(参数列表) throws 异常类名列表 { ... 3.7.2 异常的处理 异常的抛出 方法抛出异常的语法: [修饰符] 返回类型 方法名(参数列表) throws 异常类名列表 {   ...     if (条件语句) throw ( new 异常类名( ));     ... } 对有可能出现异常的方法,用throws语句列出可能出现的异常类名,这样当发生异常时,系统就调用异常处理程序。 抛出异常的语句应该被定义为在满足一定条件时执行。

3.7.2 异常的处理 定义可能产生异常的方法 示例

3.7.2 异常的处理 异常的捕获 捕捉异常语法: 异常被抛出时,用专门的语句来接收异常对象,格式如下: 3.7.2 异常的处理 捕捉异常语法: 异常被抛出时,用专门的语句来接收异常对象,格式如下: catch(异常类名 异常形式参数名) {     异常处理语句; } 异常的捕获 每个catch语句块都应该与一个try语句块相对应,这个try语句块用来启动Java的异常处理机制,可能抛出异常的语句(包括throw语句、调用可能抛出异常方法的方法调用语句)都应该包含在这个try语句块中。

3.7.2 异常的处理 异常被捕获处理的示例

3.7.2 异常的处理 多异常处理方式: 通过一个try块后面定义若干个catch块来实现,每个catch块用来接收和处理一种特定的异常对象。 多异常 处理 每个catch块中的语句应根据异常的不同执行不同的操作。 处理多异常时应注意设计各catch块的排列顺序,一般处理较具体和常见的异常应放在前,可以与多种异常相匹配的应放在后,否则可能造成它后面的catch块将永远不被使用。

3.7.2 异常的处理 用try/catch块抛出并捕获异常示例

三种情况的运行结果测试如下: 1 2 3

3.7.2 异常的处理 定义 异常处理小结 抛出 捕获

谢谢观看!