1、异常简介
error:系统错误 :内存溢出,虚拟机异常
检查异常:文件异常,连接错误,SQL错误,捕获处理语句
Error:致命的错误,不可修复的
Exception:异常,代码写错了
Exception可分为:
编译期异常:编译的时候报异常,并且一定要写try-catch,不写的话编译无法通过
运行时异常:编译的时候不报异常,运行时异常,写不写try-catch都能通过
常用的运行时异常:NumberFormatException / ArrayIndexOutOfBondsException
NullPointException(空指针异常)
当一个引用的值为NULL的时候,试图用他来调用方法或属性的时候就会发生空指针异常
InputMissmatchException 输入不匹配
ArithmeticException 算术异常
2、异常处理和抛出
try-catch-finally
Try{
一些抛出异常的方法
}catch(Exception e){//可多重catch语句,先小后大,先子类后父类
处理该异常的代码块
}finally{ //e.printStackTrace();打印异常信息
最终执行的代码块
}
Throws关键字--把异常抛给调用他的环境,声明将要抛出何种类型的异常(声明)
Throw关键字--手动抛出异常,将产生的异常抛出(动作)
public void 方法名(参数列表)throws 异常列表{
//调用会抛出异常的方法或者throw new Exception();
}
class 自定义异常类 extends 异常类型 {//异常类型为意思相近的异常类
或基类Exception
}
3、异常连
例;public void test1() throws DrunkException{
throw new DrunkException(“喝车别开酒”);
}
public void test2(){
try{
test1();
}catch(DrunkException e){
RuntimeException newExc = new RuntimeException("司机一滴酒,亲人两行泪");
newExc.initCause(e);
throw newExc;
}
捕获到的异常可以在当前方法中catch块处理,也可以抛出给调用者处理