0.前言:
异常分为自定义异常和非自定义异常也就是java写好的异常,今天我们说的是java写好的异常,因为写好的异常也分为很多种,但是总的根异常为Throwable类![](https://img-blog.csdnimg.cn/direct/c8eacb1aa3004d7c9000389dc76f6d38.png)
而下面分为两大类,Error(无法通过程序解决的的问题,不能使程序继续运行),Exception(可以通过程序解决的问题,可以使程序继续运行)。Exception下面又可以分为:运行时异常,和编译时异常。
1.编译型异常:
当出现编译时异常的时候必须立刻处理或者抛出异常交给调用者处理。
立即处理:
throws声明异常交给调用者:
main方法没处理的话那么可以继续交给上面调用者:
2.运行时异常:
如果没处理会交给jvm虚拟机处理。
3.解决Exception异常:
3.1:自己解决:
程序停止:
程序继续执行:
通过try检测异常catch捕捉异常,处理异常。
4.finally:
不管有没有异常程序都会执行里面的代码,有异常也会执行里面的代码。
有异常:![](https://img-blog.csdnimg.cn/direct/6709faf4d218410ca8defc20d74a3a9e.png)
没异常:
5.throw抛出异常:
一般throw是用与抛出自定义类型的异常,抛出可以告诉调用者一些错误信息。