异常处理
异常分类:
Throwable--所有异常类的父类
Exception--可能出现的异常
RuntimeException--经常出现
可以不用catch
非RuntimeException
必须catch
流中的IOException
Error--系统错误, 虚拟机错误, 管不了
异常的捕获和处理
第一种处理方式:
try{ // 用在可能出现异常的代码语句上
...
} catch(Exception e) {
e.printStackTrace(); // 打印输出这个错误的一串信息
}
第二种处理方式:
try{
...
} catch (Exception e) {
e.printStackTrace();
} finally {
一定会执行的代码块
}
声明方法的异常
throws--将某个方法的异常抛出, 谁调用这个方法, 谁去处理异常
throw
当throws写在main方法上的时候就会把异常打印出来
异常要及时处理
异常的处理其他问题
在一个try语句中, 子类异常的捕获语句不可以写在父类异常捕获的语句上面
自定义异常
extends Exception
extends RuntimeException
方法重写中异常
重写方法需要抛出与原方法类型一致的异常, 或者不抛出异常