常用的异常处理结构
由关键字try、catch、 finally组成常用的异常处理结构
语法
try{
∥有可能出现异常的语句
}[catch(异常类型 异常对象){
∥异常处理语句
}][finally{
∥一定会运行到的语句
*注:catch块和finally块可选择其一省略,不能同时省略
try-catch-finally
不执行finally的唯一情况
- 在catch块中添加System.exit(1);
语法
try {
∥代码段 1
∥产生异常的代码段2
}catch(异常类型ex){
∥ 对异常进行处理的代码段3
System.exit(1);
}finally{
∥代码段 4
∥省略代码
}
多重catch块
语法
try {
∥代码段
∥产生异常(异常类型2)
}catch(异常类型1 ex){
∥对异常进行处理的代码段
}catch (异常类型2 ex){
∥对异常进行处理的代码段
}catch(异常类型3 ex){
∥ 对异常进行处理的代码段
}
∥代码段
}
引发多种类型的异常
- 排列catch 语句的顺序:先子类后父类
- 发生异常时按顺序逐个匹配
- 只执行第一个与异常类型匹配的catch语句
声明异常
声明异常的关键字是throws
语法
public void 方法名() throws 异常类型[,异常类型]{
∥方法体
}
*注:声明异常,多个异常用逗号隔开
抛出异常
抛出异常的关键字是throw
语法
throw new异常名([参数列表]);
throw和throws之间的区别
throw这个需要写在代码块当中,用于扔出异常信息,这个操作会中断代码运行
throws 这个是写在方法的参数列表的小括号后,用于声明异常,这个异常是没有被处理,需要调用这个方法的代码块来处理这个异常