静的ブロックはチェックされた例外をスローできませんが、チェックされた例外がチェックされずに変換され、静的ブロックからスローされるコードをいくつか見てきました。その一例は、辞書のテキスト ファイルを読み取ることです。辞書の半分だけを読みたくないので、例外をキャッチする代わりにスローするのが理にかなっています。しかし、私の質問は、それは単なるハックなのか、それとも業界全体で一般的に採用されているコーディング スタイルなのかということです。
質問する
41 次
3 に答える
2
チェックされていない例外をスローするという決定はハックではありません。それが唯一の選択肢です。静的ブロック内の例外は、クラスの初期化の失敗を示します。これは実装であるため、クラスのユーザーがおそらく処理できないものです。あなたのクラスの詳細。つまり、静的ブロック内の例外は、プログラマーがシステムでクラスを使用した方法のエラーを示しているため、ブロックによって内部的に処理されるか、チェックされていない例外としてスローされてシステムを完全に停止する必要があります。 .
于 2013-10-20T20:13:25.173 に答える
1
それを処理できない場合は、それを投げる必要があります。そのため、必要なときに使用されます。
于 2013-10-20T20:06:55.640 に答える
1
あなたはこのように意味します:
static{
try{
//do something that throws a checked exception
...
}catch(Exception e){
//this is an unchecked exception
throw new IllegalStateException("error initializing", e);
}
}
于 2013-10-20T20:12:18.713 に答える