2011-11-11 2 views
1

コンパイル時にどんな種類のjava.lang.Errorがスローされますか?
私は1つのエラー:ClassFormatErrorを知っています。他のエラーは何ですか?
私はサーバーとして機能するアプリケーションを作成しています。サーバーはJavaプログラムをコンパイルできます。コンパイル時に、私はコンパイルを確実にするためにエラーを伴ってそれを落としたくない。私は、コンパイルエラーを防ぐことができる必要な手順をとってきました。
私はjava.lang.Errorについてはわかりませんが、Throwableオブジェクトをキャッチしてそれを防ぐことはできますが、コンパイル時にスローされるエラーオブジェクトは何かを知る必要があります。コンパイル時にどんな種類のjava.lang.Errorがスローされますか?

+1

なし。例外、エラー、コンパイル時にThrowableはスローされません。あなたの質問は理にかなっていません。 – EJP

+1

ジェネリック型やコンパイラで無限の再帰を引き起こす何かのジェネリックの事例(ヒープやスタック領域が最初に不足しているかどうかによってStackOverflowErrorまたはOutOfMemoryErrorが発生する)を覚えているようです。したがって、コンパイル時エラーは可能ですが、コンパイル時にコンパイラが必要です。 :) – cHao

+0

@EJP classFormaErrorは、メソッドコードの長さが指定の上限に達したときにスローされます – anish

答えて

4

コンパイル時にスローされるエラー(javac)は、コンパイラに内部エラーが発生したときに発生します。あなたは有効なJavaコードを提供することができ、コンパイラは死ぬことができます。私が見てよくあるエラーは、大きなコードベースをコンパイルするとOutOfMemoryErrorですが、私のIDEはコンパイラに十分なメモリを与えていません(IDEのデフォルトは128MBです)。

コンパイル時にClassFormatErrorが発生する可能性がありますクラスファイルが破損しています。

スローされたエラーをすべて知る必要はなく、ただThrowableをキャッチすることができます。それらは回復不能である可能性が非常に異常なイベントの結果である必要があります。あなたができることは、エラーを記録し、スレッドが死ぬのを防ぐことだけです。

関連する問題