Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出,才能被catch。
Throwable类包含两个子类:Error 和 Exception。
查看API发现Error 和 Exception完全是继承了Throwable的方法,除此之外并无新方法。
为什么还要定义Error 和 Exception?
【解答】
大概来说来说是因为,他们的产生原因和处理方式不同个,所以明确这两个子类,从而可以采取对应的处理。
下面详细说明:
一、产生原因
1、Error是程序本身无法恢复的严重错误.用来处理程序运行环境方面的异常,比如,虚拟机错误、装载错误和连接错误,这类异常主要是和硬件有关的,而不是由程序本身抛出的。
2、Exception下面一部分子类分别对应于Java程序运行时常常遇到的各种异常的处理,其中包括隐式异常。因为它们虽然是由程序本身引起的异常,但不是程序主动抛出的,而是在程序运行中产生的,故而成为运行时异常(RuntimeException)。
Exception 子类下面的另一部分子类对应于Java程序中的非运行时异常的处理,这些异常也称为为显示异常。
二、处理方式
1、Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。
2、Exception则表示可以被程序捕获并处理的异常错误.是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。Exception自身及其子类需要try-catch语句的支持。
特别的指出一点:可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 |