-1

静的初期化ブロックがあり、そこからExceptionInInitializerError例外がスローされます。
この例外を渡し、このクラスから他のフィールドやメソッドにアクセスする方法はありますか? ありがとうございました。

4

2 に答える 2

2

ExceptionInInitializerErrorの背後にある主な理由は、JVM が処理できない予期しない状況に遭遇すると、JVM が上記のエラーをスローすることです。ErrorExceptionInInitializerErrorをキャッチするべきではありませんが、例外が発生したクラスは以降の使用 (クラスのインスタンス化など) に使用できなくなるため、実際にはそこから回復することはできません。JLSを参照できます。- 詳細な初期化手順NoClassDefFoundError.

于 2013-04-29T07:07:20.270 に答える
0

静的ブロックを含むクラスを開始するための呼び出しを try ブロックと catch に入れExceptionInInitializerErrorます。次のように:

try{
    ClassWithStaticBlock cb = new ClassWithStaticBlock();
}
    catch(ExceptionInInitializerError ex){      
}
于 2013-04-29T07:19:15.677 に答える