学习内容:
- 异常的概念
- 异常的分类
- 异常处理(try, catch, finally, throws, throw)
- 自定义异常
异常的概念
生活中的异常
正常情况下,每日开车去上班,耗时大约30分钟,但是,异常情况迟早要发生!(堵车/撞车)
什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断 正在运行的程序
异常的分类
异 常 类 型 | 说 明 |
Exception | 异常层次结构的父类 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问 null 对象成员 |
ClassNotFoundException | 不能加载所需的类 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常, 如把"abc"转换成数字 |
异常处理
Java中如何进行异常处理
Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws
使用try-catch块捕获异常:
public void method(){
try {
代码段 1
产生异常的代码段 2
代码段 3
} catch (异常类型 ex) {
对异常进行处理的代码段4
}
}
try-catch-finally:
在try-catch块后加入finally块
public void method(){
try {
代码段 1
产生异常的代码段 2
代码段 3
} catch (异常类型 ex) {
对异常进行处理的代码段4
}finally{
代码段5
}
}
多重catch块:
排列catch 语句的顺序:先子类后父类
发生异常时按顺序逐个匹配
只执行第一个不异常类型匹配的catch语句
使用throws/throw抛出异常:
public class Test7 { 声明异常,多个异常用逗号隔开
public static void divide() throws Exception{
可能出现异常的代码
}
public static void main(String[] args) {方式1:调用者处理异常
try {
divide();
} catch (Exception e) {
e.printStackTrace();
}
}
}
自定义异常
当JDK 中的异常类型不能满足程序的需要时,可以自定义异常类
使用自定义异常的步骤:
- 定义异常类
- 编写构造方法,继承父类 的实现
- 实例化自定义异常对象
- 使用throw抛出