PMD:变异的DD异常

时间:2016-03-02 06:29:58

标签: java pmd

我正在使用带有PMD插件的Eclipse(4.0.0.v20130510-1000)并获得了大量违规并解决了大部分违规行为,但我不明白为什么 DD anomaly 发生在下面的代码中

private boolean createFile(final String szFileName){
    final File oFile = FileUtils.getFile(szFileName);
    boolean bStatus;
    try {
        FileUtils.touch(oFile);
        bStatus = true; // DD anomaly
    } catch (IOException e) {           
        log.error("Failed to create new file. "+ e);
        bStatus = false;
    }
    return bStatus;
}

我不能使用多个return语句,因为multiple exit point规则会中断。

尝试了另一种方式,但将DD异常变为另一条线,

private boolean createFile(final String szFileName){
        final File oFile = FileUtils.getFile(szFileName);
        boolean bStatus = true; // DD anomaly
        try {
            FileUtils.touch(oFile);
        } catch (IOException e) {           
            log.error("Failed to create new file. "+ e);
            bStatus = false;
        }
        return bStatus;
    }

1 个答案:

答案 0 :(得分:1)

另一种方法是让createFile抛出IOException并在上游处理它。然后你可以createFile返回void,或者更好,让它返回它创建的文件。这将摆脱你收到的DD anomaly

替代createFile

private File createFile(final String szFileName) throws IOException {
    final File oFile = FileUtils.getFile(szFileName);        
    FileUtils.touch(oFile);

    return oFile;
}