在以下方法中我得到了findbug违规RV_RETURN_VALUE_IGNORED_BAD_PRACTICE

时间:2013-12-19 07:00:56

标签: java findbugs

public File moveFileToUploadLoc(final File dir) throws Exception {
    File fileToMove = null;
    if (dir != null) {
        final File[] files = dir.listFiles();
        for (int i = 0; files != null && i < files.length; i++) {
        if (files[i].getName().endsWith("abcd")) {
                    fileToMove = files[i];

                    File destnFile = this.getFilePathFrmConfigRepo(this
                            .getFilePathKey());
                    fileToMove.renameTo(destinationFile);

                    break;
                }
            }
        }

        return fileToMove;
    }

它表明了这一点 RV_RETURN_VALUE_IGNORED_BAD_PRACTICE

  

此方法返回未检查的值。应检查返回值,因为它可以指示异常或意外的函数执行。例如,如果无法成功删除文件(而不是抛出异常),则File.delete()方法返回false。如果不检查结果,则不会注意方法调用是否通过返回非典型返回值来表示意外行为。

2 个答案:

答案 0 :(得分:1)

您正在使用File.renameTo()并且忽略了它的返回值。您应该检查它,如果它是错误的,您应该处理这种情况,例如,抛出异常。

答案 1 :(得分:1)

阅读(现在正确的)引用文本,您会看到解释清楚。对于每个返回值的函数,您应该以某种方式使用该函数。

他们的示例甚至特别指的是File方法delete()。在这种情况下,findbugs很可能是指您对File.renameTo()的调用。

您应该检查此函数的返回值并相应地处理错误(false)。