我发现自己经常在以下两种设计模式之间进行选择:
static {
    try {
        foo();
    }
    catch(Exception exc) {
        throw new RuntimeException(exc.getMessage());
    }
}
和
TheConstructor() throws SomeException {
    if(alreadyInited) {
        return;
    }
    alreadyInited = true;
    foo();
}
问题是我真的想为每个类初始化一次东西——我认为是静态的——比如设置一个记录器,从文件中加载一些地图等等——如果这个操作失败,我真的希望程序停止. 这两种设计模式看起来都很杂乱(第一个更明显),所以我想知道是否有更好的方法来做到这一点。