1. 异常处理
当程序运行出现异常情况时系统会自动生成一个Exception对象,该对象被提交给java运行时环境,称为抛出(throw)异常。Java运行时环境寻找能处理异常对象的catch块,将异常对象交给catch块处理,这个过程为捕获异常。如果找不到catch块则运行时环境终止,java程序也将退出。
2. 异常类得继承体系
1) 如何找到处理异常对象的catch块:当Java运行时环境接收到异常对象后,会依次判断异常对象是否是catch块后异常类得实例或其子类的实例。如果是则用此catch块来处理此异常对象。否则再次判断异常对象和下个catch块的异常类型进行比较。当找到对应的catch块后异常对象会传递给catch块的异常参数,这样catch块里就可以通过异常对象获取异常信息了。
try {
…
} catch (ExceptionClass1 e1) {
…
} catch (ExceptionClass2 e2) {
…
}
2) 继承体系
非正常情况分为异常(Exceptiom)和错误(Error)。
Error:一般指虚拟机相关的问题。如系统崩溃,虚拟机出现问题,动态链接失败。这种错误无法恢复或不可扑捉。
Exception:
3)访问异常信息
4)使用finally回收资源
当在try块中打开了数据库链接,网络链接和磁盘文件后,在finally块里进行回收处理。
try{
}catch(Exception e){
} finally {
}
5) checked和runtime 异常,所有runtimeException类及其子类为runtime异常,其他的称为checked异常。
6)使用throw 生命抛出异常
当当前方法不知道该如何处理异常是可以将异常抛给上一级调用者处理。
子类方法中抛出的异常类型必须与父类相同或是父类的子类。