Javaでは、コンパイラはチェック例外があることをどのように識別しますか? つまり、それをどのように識別していますか?
2 に答える
ドキュメントから右:
Java プログラミング言語のコンパイラは、コンパイル時に、どのチェック済み例外がメソッドまたはコンストラクターの実行によって発生する可能性があるかを分析することにより、チェック済み例外のハンドラーがプログラムに含まれていることをチェックします。可能な結果であるチェック済み例外ごとに、メソッド (§8.4.6) またはコンストラクター (§8.8.5) の throws 句で、その例外のクラスまたはその例外のクラスのスーパークラスの 1 つを指定する必要があります。このコンパイル時の例外ハンドラの存在チェックは、適切に処理されない例外の数を減らすように設計されています。
非チェック例外クラスは、RuntimeException クラスとそのサブクラス、および Error クラスとそのサブクラスです。他のすべての例外クラスはチェック例外クラスです。Java API では、チェック済みとチェック解除済みの両方の例外クラスが多数定義されています。プログラマは、追加の例外クラス (チェックされているものとチェックされていないもの) を宣言できます。例外クラス階層の説明と、Java API および Java 仮想マシンによって定義された一部の例外クラスについては、§11.5 を参照してください。
したがって、基本的にはコードを調べ、例外に遭遇した場合は、例外の継承階層を調べて、チェックされているかチェックされていないかを判断します。
チェックされたすべての例外には基本クラスがありますが、チェックされていException
ない例外は拡張RuntimeException
またはError
。