1、异常处理 提高我们的容错性。
当异常发生时,运行某一部分代码,来减少异常的损失。
避免异常 VS 处理异常
异常分类
Throwable
下面子类
|-Error 错误 严重的 不可避免的, 无法处理。
|-Exception 异常 可以处理
|-RuntimeException 的子类 是未检查异常
可以避免的 可处理可不处理
|-非RuntimeException的子类 已检查异常
不可避免的 必须处理
如果一个程序可能发生已检查异常,而程序员未加处理,程序的编译错误。
数组越界异常 未检查异常
空指针异常 未检查异常
类转换异常 未检查异常
2、异常是个对象
异常对象的产生:
throw :动作,抛出一个异常 将异常对象作为方法的返回值返回
等同于return语句
最终异常给JVM
异常对象的传递:
沿着方法调用链反向传递,直至JVM。最终导致程序中止
java.io
IOException 已检查异常
java.sql
SqlException 已检查异常
异常的处理:
1)throws 声明抛出 消极的处理
2)try-catch 捕获异常 积极地处理
catch 中异常发生时,在运行
try{
}catch(IOException e){ //异常引用
}
try-catch-finally
finally:无论有没有异常,都会执行。 主要是释放资源
try{
}
catch(Exception e){}
finally{}
try-finally:先执行finally