初期化子でチェック例外が発生しうるコードを記述した場合、チェック例外をcatchしてRuntimeExceptionをthrowするのがよい。
初期化子でチェック例外をthrowできないため、例外を握りつぶしているコードが多い気がする。。

握りつぶしている例

{
    try{
        initialize();
    } catch(Exception e){
        e.printStackTrace();
    }
}

RuntimeExceptionにする例

{
    try{
        initialize(); // 例外を throw する処理
    } catch(Exception e){
        RuntimeException re = new RuntimeException("initialize error");
        re.initCause(e);
        throw re;
    }
}

RuntimeExceptionにする例 (全文)

class InitThrow {
    {
        try{
            initialize();
        } catch(Exception e){
            RuntimeException re = new RuntimeException("initialize error");
            re.initCause(e);
            throw re;
        }
    }
    public static void main(String[] args){
        System.out.println("testing");
        new InitThrow();
    }

    private static void initialize() throws Exception{
        // some code here
        throw new Exception();
    }
}