「報告されていない例外」コンパイル エラーについて
コンパイル エラー「エラー: 報告されていない例外 ; をキャッチするか宣言する必要があります」 「スローされる」は、メソッドまたはコンストラクター内のチェック例外が適切に処理されない場合に発生します。 with.
チェック例外と未チェック例外
Java は、チェック例外と未チェック例外を区別します。チェックされた例外は、それを囲んでいるコード内で明示的に処理する必要がありますが、チェックされていない例外はその必要がありません。 IOException は、チェック例外の例です。
チェック例外の処理
コンパイル エラーを修正するには、チェック例外を次のいずれかで処理する必要があります。
- 同じメソッド内の try ... catch ブロック内でキャッチする、またはconstructor.
- 囲んでいるメソッドまたはコンストラクターが例外をスローすることを宣言し、それをキャッチする責任を呼び出し元に渡します。
ソリューション プロセス
-
例外を理解する: その意味とその理由を判断する
-
処理戦略を決定します: 例外をキャッチするか、例外をスローとして宣言するかを選択します。
-
必要なコード変更を行います: 選択した戦略を実装します。
エッジケース
-
静的初期化子: チェックされた例外は静的初期化子内ではキャッチできません。回避策は、静的ブロックを使用し、そこで例外を処理することです。
-
静的ブロック: チェックされた例外は静的ブロック内でキャッチする必要があります。
-
ラムダ: 関数インターフェイスのシグネチャで指定されているように、Lambda は未チェック例外をスローすべきではありません。ラムダ自体内で例外をキャッチする必要があります。
-
同じ名前の例外: 同じ名前の例外の完全修飾名をチェックして、異なる例外でないことを確認します。
悪い実践方法
- 無差別に例外または Throwable をキャッチすることは避けてください。
- 呼び出し元に潜在的なチェック例外の処理を強制するため、メソッドを例外スローとして宣言しないでください。
- 例外を決して潰さないでください(つまり、例外を処理せずに無視します)。これにより、潜在的な実行時エラーが目立たなくなります。
以上がJava での「報告されていない例外」コンパイル エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。