重複の可能性:
ランタイムとコンパイル時間
Java の特定のコード行がコンパイル時エラーまたは実行時エラーをスローする可能性があるかどうかを知るにはどうすればよいですか? とにかく特定のコード行がスローされ、エラーが発生すると仮定します。
重複の可能性:
ランタイムとコンパイル時間
Java の特定のコード行がコンパイル時エラーまたは実行時エラーをスローする可能性があるかどうかを知るにはどうすればよいですか? とにかく特定のコード行がスローされ、エラーが発生すると仮定します。
Eclipse では、コンパイル時のエラーは赤で下線が引かれます。コンパイル時エラーは、コンパイラによって検出されるエラーです。コンパイル時エラーの一般的な原因は次のとおりです。
コンパイラがコンパイル中にエラーを検出すると、新しいアセンブリ (または Java のクラス ファイル) の構築に失敗します。
コードにコンパイル時エラーがない場合でも、実行時にエラーが発生する可能性があります。「ロジック エラー」や「ランタイム エラー」などのエラー。実行時エラーの良い例は次のとおりです。
実行時エラーが発生した行を正確に検出するには、Eclipse のブレークポイントと適切な例外処理を組み合わせて使用できます。
コードがコンパイルされないかどうかを確認するには、コンパイルしてみてください。コンパイラは文句を言います。
コードに実行時エラーが含まれているかどうかを確認するには、単体テストを記述します。
事実上、コードのすべての行が理論的には実行時例外をスローする可能性があり、「コンパイル時エラーをスローする」ようなことはありません。コンパイラ エラーと実行時例外を混同していると思います。
とにかく、コンパイル エラーは簡単です。コンパイルして確認してください。それらについて「可能性」は決してありません。コード行は確実にコンパイラ エラーを生成するか、または生成しません。
実行時エラーに関しては、コード行がエラーになるかどうかを静的に分析して推測するのが最善の方法です。throw new RuntimeException()
やのように明らかな場合もありますnull.toString()
が、ほとんどはそうではなく、実行せずに分析するには豊富な経験が必要です。
最善の方法は、それをコンパイルすることです。その後、ほとんどのコンパイラはコンパイル時のエラーをすべて指摘します。一方、実行時エラーの場合、開発者はより多くの労力を必要とします。
一部のコンパイラは、スローされる可能性のある例外をユーザーに通知しますが、特定のコード行にランタイムが含まれているかどうかを確認する最善の方法は、異なる入力でそれらを実行し、結果を観察することです (つまり、単体テスト、サニティ テストなどを使用します)。
コードをコンパイルすると、コンパイル時エラーがあるかどうかがわかります。コードを実行すると、ランタイム エラーが表示される場合があります。