java - PMD : DD anomaly for variable

标签 java pmd

我将 Eclipse 与 PMD 插件 (4.0.0.v20130510-1000) 一起使用,遇到了很多违规问题并解决了其中的大部分问题,但我不明白为什么 DD 异常 出现在下面的代码中

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;
}

我不能使用多个返回语句,因为 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;
    }

最佳答案

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

替代createFile:

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

    return oFile;
}

关于java - PMD : DD anomaly for variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740032/

相关文章:

java - Dropwizard: .yml 配置是强制性的吗?

java - 找不到适合 jdbc :postgresql://192. 168.1.8:5432/NexentaSearch 的驱动程序

java - 多对多显式关系的 HQL 查询

java - 服务器建立sslConnection后如何在netty客户端上获取回调

tfs - 如何强制开发人员在 checkin TFS 之前解决静态代码分析工具问题

java - 如果变量仅被一个线程访问,但通过其他线程的 lambda 传递,Java 是否需要 volatile 关键字?

maven - PMD/CPD 无法检测重复代码

Jenkins PMD 代码分析器警告全部显示为高优先级

java - Java 有没有报告向下转型的工具?

Java 代码 PMD 提示圈复杂度,共 20