选中/取消选中RunTimeException?

时间:2012-05-09 07:49:02

标签: java runtimeexception

我对选中/未选中的异常感到困惑。我认为RunTimeException是未经检查的异常,那么为什么它会在Exception类下面?

考虑一个案例..我的超类构造函数抛出RunTimeException而子类构造函数没有抛出任何东西..那么它将不会在子类中给出任何编译时错误。 为什么会发生RuntimeException是未经检查的异常?

Thaks, Gunjan Shah。

1 个答案:

答案 0 :(得分:2)

已检查的异常是Exception(或Exception本身)的任何子类,不包括RuntimeException类及其子类。

进行异常检查会强制客户端程序员处理抛出异常的可能性。例如,java.io.FileInputStream的read()方法抛出的IOException

未经检查的异常是RuntimeException及其任何子类。类错误及其子类也未被选中。

但是,对于未经检查的异常,编译器不会强制客户端程序员捕获异常或在throws子句中声明它。事实上,客户端程序员可能甚至不知道可能抛出异常。例如,String的charAt()方法抛出StringIndexOutOfBoundsException。

必须在编译时捕获已检查的异常。不需要运行时异常。错误通常不可能,因为它们往往是不可恢复的。