相关概念的练习与区别
1.Throwable 类是 Java 语言中所有错误或异常的超类。它的两个子类是Error和Exception;
2.Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。
3.Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
4.RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException 的任何子类都无需在 throws 子句中进行声明。它是Exception的子类。
5.方法重写时:在子类中一个重写的方法可能只抛出父类中声明过的异常或者异常的子类
Error与Exception有什么区别
Error类和Exception类都继承自Throwable类
Error的继承关系:
Java.lang.Object
java.lang.Throwable
java.lang.ErrorException的继承关系:
java.lang.Object
java.lang.Throwable
java.lang.Exception二者的不同之处
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理
Error:
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉Java 中定义了两类异常
1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。
2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是非凡的,它们不能通过client code来试图解决,所以称为Unchecked exception。
详细参见博文
http://blog.csdn.net/lzabcde/article/details/50515551