次の2つのデザインパターンから選択することがよくあります。
static {
try {
foo();
}
catch(Exception exc) {
throw new RuntimeException(exc.getMessage());
}
}
と
TheConstructor() throws SomeException {
if(alreadyInited) {
return;
}
alreadyInited = true;
foo();
}
問題は、クラスごとに1回だけ初期化することです。つまり、静的に、ロガーの設定、ファイルからのマップのロードなどです。この操作が失敗した場合は、プログラムを停止する必要があります。 。これらのデザインパターンはどちらも扱いにくいように見えるので(最初のパターンの方が明らかにそうです)、これを行うためのより良い方法があるかどうか疑問に思います。