Java最新实用教程第 10章 异常处理
Java最新实用教程
2009年 7月 27日星期一 2
学习目的:
了解异常的概念,分类
了解异常的层次
掌握异常捕获和异常处理
掌握自定义异常的编写和使用
学习重点:
异常的捕获与处理
自定义异常的编写和使用
Java最新实用教程
2009年 7月 27日星期一 3
第 10章 异常处理本章提要:
1,异常概念
2,异常处理
3,抛出异常
4,自定义异常
Java最新实用教程
2009年 7月 27日星期一 4
10.1.1 异常的概念异常是在运行时代码序列中出现的异常条件,也即异常是一个运行时错误。
10.1 异常
Java最新实用教程
2009年 7月 27日星期一 5
10.1.2 异常的分类异常一般可以分为异常( Exception) 和错误( Error)
两个基本类别。
错误类表示严重的错误,例如内部错误和类的错误,
错误的处理直接由 Java系统自动处理。
Java编译器要求 Java程序必须捕获或声明所有的非运行时异常,但对运行时异常可以不处理。
Java最新实用教程
2009年 7月 27日星期一 6
10.1.3 异常的层次异常类是内嵌类 Throwable的子类 。 Throwable类派生了
Exception( 异常 ) 类和 Error( 错误 ) 类 。 Exception类又派生出很多的子类,这些子类分为两个分支,一个是
RuntimeException 类 及 其 子 类,另 一 类 是 直 接 从
Exception类派生出的子类
Java最新实用教程
2009年 7月 27日星期一 7
10.2 异常 处理
10.2.1 异常处理语句
try {
… }
catch(异常类 异常变量名 ){
… }
finally{
… }
Java最新实用教程
2009年 7月 27日星期一 8
10.2.2 异常处理机制
Java程序中,发生异常时,通常我们可以使用两种方法来处理。
一是直接由 Java默认的异常处理机制进行处理 。
二是我们自己编写 try-catch-finally语句块进行异常处理 。
Java最新实用教程
2009年 7月 27日星期一 9
10.2.3 多个 catch语句用于处理一个以上的异常,结构如下:
try {
… }
catch(异常类名 e) {
… }
catch(异常类名 e) {
… }
Java最新实用教程
2009年 7月 27日星期一 10
10.2.4 finally语句
finally创建一个代码块,该代码块在 try-catch块执行之后,try-catch块后面的代码执行之前执行。不管是否抛出一个异常,finally块都会执行。
try {
… }
catch(异常类名 e) {
… }
finally {
… }
Java最新实用教程
2009年 7月 27日星期一 11
10.3 抛出 异常
10.3.1 throw语句
throw总是出现在函数体中,用来明确地抛出一个异常。程序会在 throw语句后立即终止。
throw的语法如下:
throw throwableInstance
throwableInstance是 Throwable类或其子类的一个实例对象 。 所 以 在 使 用 该 语 句 之 前,必 须 先 得 到 一 个
throwableInstance的句柄,通过参数传递到 catch子句 。
Java最新实用教程
2009年 7月 27日星期一 12
创建一个 throwableInstance,格式为:
异常类名 异常变量名;
throw 异常变量名;
或者
throw new 异常类名 ();
例如:
ArithmeticException e;
throw e;
或者
throw new ArithmeticException();
Java最新实用教程
2009年 7月 27日星期一 13
10.3.2 throws语句
throws总是出现在函数头中,用来标明该成员函数可能抛出的各种异常。要明确地抛出一个 RuntimeException,必须用 throws语句来声明它的类型。
例如:
public void setAge(int a) throws CCOutOfAge
该行代码表示当我们调用 setAge时,可能产生 CCOutOfAge异常 。 如果方法定义中包含 throws子句,调用该方法的 Java语句就必须包含在 try-catch语句块中,否则将发生编译错误

Java最新实用教程
2009年 7月 27日星期一 14
10.4 自定义 异常自定义异常类的语法:
class 异常名称 extends Exception
{

}
在自定义异常类中,我们可以编写方法来处理相关的情况,也可以不写任何代码。
Java最新实用教程
2009年 7月 27日星期一 15
10.5 本章小结本章主要介绍了 Java语言中的异常概念、异常的分类及体系结构
、异常处理语句 try,cacth,finally,throw和 throws语句的使用
,最后介绍了自定义异常类以及在程序中使用自定义异常类的方法和实现代码。通过本章的学习,我们要掌握程序代码中异常捕获的方法和异常处理的方法,提高应用程序的健壮性,并能够针对不同的异常类别编写不同的处理代码。最后要掌握的是,编写自定义异常类的方法,以及如何在应用程序中抛出自定义异常。