异常复习
异常(广义):泛指程序中一切不正常的情况
错误:例如内存不够用,程序是无法解决的
异常(狭义):程序在运行中出现问题,但是可以通过异常处理机制处理,程序可以继续向后执行
常见的运行期异常
RuntimeException:运行时异常
NullPointerException:空指针异常
ArrayIndexOutofBoundsException:数组越界异
ClassCastException:类型转换异常
常见的编译期异常
OException:输入输出流异常
FileNotFoundException:文件找不到的异常
ClassNotFoundException:类找不到的异常
DataFormatException:数据格式化异常
SQLException:数据库操作异常
异常体系
Throwable类有两个直接子类:Exception类、Error类。
Error:表示错误,可能是编译期错误或者系统错误,往往程序中是不处理的
Exception:表示异常,是所有异常类的父类,是程序员关心的事
位
异常分为:运行期异常和编译期异常
运行期异常:程序运行时抛出的异常,所有RuntimeException的子类都是运行期异常(数学异常、空指针异常、数组下标越界....)
编译期异常:除去运行期的异常都是编译期异常,也称为检测异常(写代码时就会提示处理)
throw和throws的区别
throws
在方法的形参列表后面,声明此方法可能会抛出某种类型的异常,可以声明多个
如果声明为运行时异常,编译期不强制处理
如果声明为编译期异常,编译期间强制提示进行处理
抽象方法也可以用throws声明异常类型
重写的方法中声明的异常类型等于或小于父类声明的类型
throw
在方法中抛出具体的异常对象
final和finally的区别
-
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。
-
finally:异常处理语句结构的一部分,表示总是执行。