JAVA.CTOR.EXCEPT
コンストラクターが例外をスローすることに注意する
脆弱性とリスク
例外をスローするコンストラクターによってオブジェクトが部分的に初期化され、その結果、後で予期せぬ結果につながる可能性があります。
軽減と防止
コンストラクターでの例外の使用を制限するか、または例外が適切に処理されるようにしてください。
脆弱コード例
コピー
                                                        
                                                    
                                                package com.klocwork;
import java.io.IOException;
public class JAVA_CTOR_EXCEPT_POSITIVE {
    public JAVA_CTOR_EXCEPT_POSITIVE(boolean check) throws IOException {
        if (check) {
            System.out.println("hello world");
        } else {
            throw new IOException("...");
        }        
    }
}
                                                        修正コード例
コピー
                                                    
                                                
                                            package com.klocwork;
public class JAVA_CTOR_EXCEPT_NEGATIVE {
    public JAVA_CTOR_EXCEPT_NEGATIVE() {
        System.out.println("hello world");
    }
}