Throwable
- 是Java中所有错误或异常的超类。
- 它的两个子类是Error和Exception。
Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException 的任何子类都无需在 throws 子句中进行声明。
在子类中一个重写的方法可能只抛出父类中声明过的异常或者异常的子类
Exception和Error的区别
Exception
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员自身导致的错误
3.在应用程序级被处理
Error(应用层面少用,了解即可)
1.总是不可控制的(unchecked)
2.用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉
7.Java中的两类异常情况
1. Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。**可能导致的问题:代码效率低,耦合度过高**
2. Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是非凡的,它们不能通过client code来试图解决,所以称为Unchecked exception
异常类关系图