А чем такой код не подходит?
public class ThrowSingleton {
static public void main(String args[]) throws Throwable {
SingletonClass.getInstance().toString();
}
}
class SingletonClass {
public SingletonClass() throws Throwable {
throw new Exception();
}
private static SingletonClass instance;
public static SingletonClass getInstance() throws Throwable {
if (instance != null) {
instance = new SingletonClass();
}
return SingletonClass.instance;
}
}
Не очень понял, зачем делать приватный подкласс, который держит синглтон.