2

重複の可能性:
Java: チェックさ
れた例外とチェックされていない例外の説明

Java の 2 つの例外タイプに「checked」と「unchecked」という名前が付いているのはなぜですか? このタイプの例外を選択する理由は何ですか?

4

2 に答える 2

3

チェックされた例外は に拡張java.lang.Exceptionされ、チェックされていない例外は に拡張さjava.lang.RuntimeExceptionれますjava.lang.Error

Exceptionextends java.lang.Throwable、 while RuntimeExceptionextends Exception、およびError同様Exceptionに extends java.lang.Throwable.

チェックされた例外とチェックされていない例外のどちらを使用するかを決定するときは、常に次のルールを覚えておいてください。

  • ExceptionS は、アプリケーションが処理したいケースです。
  • RuntimeExceptionS は、プログラミング エラーのために (通常は) 処理できないケースです。S をキャッチするべきではありませんRuntimeException。単体テストで対象を絞り、製品コードで修正する必要があります。
  • ErrorS は、システムの問題 (ファイル システムの障害など) などの重大なエラーのために処理できないケースです。JVM 用のコンパイラなどを構築する場合を除き、 an をスロー、キャッチ、またはサブクラス化しErrorないでください。
于 2012-12-10T09:12:47.667 に答える
2

クラスRuntimeExceptionとそのサブクラス、およびクラスErrorとそのサブクラスは未チェックの例外クラスです。コンパイラは、それらを throws 句で宣言することを強制しません。Throwable階層の一部である他のすべての例外クラスは、チェック例外です。

チェックされていない例外クラスは、プログラムの多くのポイントで発生する可能性があり、それらからの回復が困難または不可能であるため、java のコンパイル時のチェックから除外されます。また、プログラマーのロジックにも依存します。たとえば、OutOfMemory ExceptionJVM がプログラムにこれ以上メモリを割り当てることができない場合にスローされます。

于 2012-12-10T09:09:27.230 に答える