异常处理将会改变程序的控制流程,并让程序有机会对错误作出处理
一、try-catch语句
try{
//可能发生错误的语句
}catch(Exception的某个子类){
...
}catch(Exception的某个子类2){
..
}
注:catch中的子类之间不能存在父子关系
二、自定义异常类:
示例代码:
public class Ie extends Exception{//自定义异常类
Ie(){//构造方法
}
}
//可能出现异常的方法所在的类
public class People{
//可能出现异常的方法
public void setAge() throws Ie{
throw new Ie();
}
}
static void main(){
People p=new People();
try{p.setAge()}
catch(Ie e){...}
}
注:throw 是Java关键字,该关键字的作用是抛出异常,throw 和throws 是两个不同的关键字
三、finally语句
执行机制:在执行try-catch语句后,不论是否发生过异常,都将执行finally语句
注意:
1、如果在try-catch 语句中执行了return语句,finally子语句仍将被执行;
2、如果在try-catch 语句中执行了程序退出语句,即System.exit(0),将不执行finally语句
四、断言语句
格式:
1、assert booleanExpression;
2、assert booleanExpression:MessageException;
其中booleanExpression必须是boolean类型的表达式;MessageException可以使字符串的表达式。
执行机制:
当booleanExpression的值是false时(即异常发生),输出MessageException的值