异常
第6章
1
目标
了解异常的定义
了解异常的分类
掌握 try、catch 和 finally 语句的用法
掌握throw、throws子句的用法
掌握如何定义自己的异常
2
什么是异常
运行时发生的错误称为异常。处理这些异常就称为异常处理。
一旦引发异常,程序将突然中止,且控制将返回操作系统。
发生异常后此前分配的所有资源都将保留在相同的状态,这将导致资源漏洞。
3
Java异常处理基础
Java异常处理机制采用一个统一和相对简单的抛出和处理错误的机制。如果一个方法本身能引发异常,当所调用的方法出现异常时,调用者可以捕获异常使之得到处理;也可以回避异常,这时异常将在调用的堆栈中向下传递,直到被处理。
4
异常体系结构
所有异常类型都是
内置类Throwable的子类
用于Java运行时系统
来显示与运行时系
统本身有关的错误
用于用户程序可能
捕获的异常,也是用来创建用户异常类型子类的类。
Error类对象由Java虚拟机生成并抛出;
Exception类对象由应用程序处理或抛出。
5
常见异常及其用途 2-1
异常
说明
RuntimeException
ArithmeticException
算术错误,如除以 0
IllegalArgumentException
方法收到非法参数
ArrayIndexOutOfBoundsException
数组下标出界
NullPointerException
试图访问 null 对象引用
ClassNotFoundException
不能加载请求的类
6
常见的异常及其用途 2-2
异常
说明
AWTException
AWT 中的异常
IOException
I/O 异常的根类
FileNotFoundException
不能找到文件
EOFException
文件结束
essException
对类的访问被拒绝
NoSuchMethodException
请求的方法不存在
InterruptedException
线程中断
7
异常处理模型
由五个关键字 try、catch、throw、throws 和 finally 处理。
Java 中可用于处理异常的两种方式:
自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。
回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。
8
多个 catch 块
单个代码片段可能会引起多个错误。
可提供多个 catch 块分别处理各种异常类型。
. . .
try{ }
catch(ArrayIndexOutOfBoundsException e){ }
catch(Exception e) { }
...
ArrayIndexOutOfBoundsException类为 Exception 类的子类,但是如果异常
属于ArrayIndexOutOfBoundsException类将执行第一个 catch 块,之后控制
将转向try/catch块之后的语句,所以始终不会执行第二个 catch 块。
9
多个 catch 块示例
class Catch22 {
public static void main(String args[]) {
try {
String num=args[0];
int numValue=(num);
("平方为"+numValue*numValue);
}
catch(ArrayIndexOutOfBoundsException ne) {
("未提供任何参数!");
}
catch(NumberFormatException nb) {
("不是数字!");
}
}
}
输出
结果
10
java课件-异常 来自淘豆网m.daumloan.com转载请标明出处.