异常的定义
异常是指在程序运行过程中所发生的的不正常的事件,它会中断正在运行的程序
处理异常的两种方式
try{
//代码段
}catch(Exception e){
//对异常进行处理的代码段,如果有return 就行执行finally的再return
}finally{
//最终执行,唯一不执行的情况是system.exit(0);
}
public static void divide() throws Exception {
//可能出现异常的代码
}
异常对象常用方法
void printStackTrace();//输出异常的堆栈信息
String getMessage()//返回异常信息的描述字符串
异常类型
异常类型 | 说明 |
Exception | 异常层次结构的父类 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问 null 对象成员 |
ClassNotFoundException | 不能加载所需的类 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常,如把"abc"转换成数字 |
程序员主动抛异常
public void setSex(String sex) throws Exception {
if ("男".equals(sex) || "女".equals(sex))
this.sex = sex;
else {
throw new Exception("性别必须是男或者女!");
}
}
异常分类
//Throwable 是Exception和Error类的父类
//Exception :由Java应用程序 抛出和处理的非严重错误(运行时异常,不要求程序必须做出处理; Checked异常,程序必须处理该类异常)
//Error:仅靠程序本身无法恢复的严重错误
异常链
A方法调用B方法时,B方法却抛出了异常。那A方法继续抛出原有的异常还是抛出一个新异常呢?
抛出原有的异常 :A方法与B方法进行了关联,不便于代码的修改和扩展
抛出新的异常:异常链创建了新的异常但却保留了原有异常的信息