2012-05-09 12 views
0

チェック済み/未チェック例外と混同しています。私はRunTimeExceptionが未チェックの例外だと思うのですが、なぜ例外クラスの下に来るのですか?RunTimeExcceptionがチェックされているかチェックされていませんか?

私のスーパークラスのコンストラクタがRunTimeExceptionをスローしていて、サブクラスのコンストラクタが何もスローしていない場合、サブクラスにコンパイルエラーが発生しません。 なぜそれが起こるのかRuntimeExceptionもチェックされていない例外?

タックス、 ガンジャンシャー。

答えて

2

チェック例外は、クラスRuntimeExceptionおよびそのサブクラスを除くException(またはException自体)のサブクラスです。

例外チェックを行うと、クライアントプログラマは例外がスローされる可能性に対処しなければなりません。たとえば、java.io.FileInputStreamのread()メソッドによってスローされるIOException

チェックされていない例外は、RuntimeExceptionおよびそのサブクラスです。クラスエラーとそのサブクラスもチェックされません。

ただし、未チェックの例外を指定すると、コンパイラはクライアントプログラマに例外をキャッチしたり、throws句で宣言したりすることはありません。実際には、クライアントプログラマは例外がスローされる可能性があることさえ知りません。例えば、StringのcharAt()メソッドによってスローされるStringIndexOutOfBoundsException。

コンパイル時にチェック例外をキャッチする必要があります。ランタイム例外は、必ずしも必要ではありません。彼らは回復不能な傾向があるので、しばしばエラーになることはできません。

関連する問題