异常的处理
异常的继承结构:
Throwable–顶级父类
-
—Error:系统错误,无法修复
-
—Exception:可修复的错误
—RunTimeException
—ClassCastException
—ClassNatFoundException
异常的处理:
1、捕获
2、向上抛出
异常捕获的语法结构:
try{
会发生异常的代码;
}catch(异常类型 异常名 ){
解决方案;
}
java中专门出了一个异常处理机制:
“异常三连” try-catch-finally
原理:
把可能出现异常的代码放入try代码块中,然后将异常封装为对象,
被catch后面的 () 中的那个异常对象接收,
接收以后:执行catch后面的 {} 里面的代码,
然后try-catch后面的代码,该怎么执行就怎么执行。
细节:
【1】在什么情况下,try-catch后面的代码不执行?
(1)throw抛出异常的情况
(2)catch中没有正常的进行异常捕获
(3)在try中遇到return
【2】怎么样才可以将 try-catch后面的代码 必须执行?
只要将必须执行的代码放入 finally 中,那么这个代码无论如何一定执行。
【3】return和finally执行顺序?
先执行finally最后执行return
【4】什么代码会放在finally中呢?
关闭数据库资源,关闭IO流资源,关闭socket资源。
【5】有一句话代码很厉害,它可以让finally中代码不执行!
System.exit(0);//终止当前的虚拟机执行
【6】多重catch可并列写