Effective Java に書かれている通り、 Java でシングルトンを作りたい場合は単一要素の enum を作成するという方法があります。そんでまぁ結構気軽に enum を使っていたんですが、コンストラクタで例外が発生しうるような実装にしてしまうと辛いということに気づきました。 例えばこんな enum を作って、 public enum SampleEnum { INSTANCE; private SampleEnum() { throw new RuntimeException("enumコンストラクタで例外"); } public void doHoge() { System.out.println("doHoge"); } } こんな感じで使ってみるとします。 public static void main(String[] args) { try { System.out.