Error又称错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟错误等,程序对其不作处理。
Exception:所有异常的父类,其子类对应了各种各样可能出现的异常事件,一般要用户显式的声明或捕获。
Runtime Exception :一类特殊的异常,如被0除、数组下标超范围等。其产生比较繁琐,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。
常见异常类型:IOException FileNotFoundException ArrayIndexOutofBoundException NullPointerException ArithmeticException
不管有没有异常,finally后的代码都执行。
重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常
例如:
class A{
public void method() throws IOException{}
}
class B1 extends A {
public void method() throws FileNotFoundException{...}//错误,FileNotFoundException是IOException的子类
}
class B3 extends A{
public void method(){...}//正确,不抛异常
}
class B2 extends A{
public void method() throws Exception{...}//错误,FileNotFoundException和IOException都是Exception的子类
}