首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Findbug: RV_RETURN_VALUE_IGNORED_BAD_PRACTICE

Findbug: RV_RETURN_VALUE_IGNORED_BAD_PRACTICE
EN

Stack Overflow用户
提问于 2013-03-08 07:43:04
回答 2查看 11.8K关注 0票数 4

我正在使用FindBugs从Ant中分析Eclipse中的代码。

下面的片段给出了RV_RETURN_VALUE_IGNORED_BAD_PRACTICE

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

代码语言:javascript
复制
public void export (File file) throws IOException {
    if (!file.exists()) {
        file.createNewFile();
    }

    BufferedWriter bw = null;
    try {
        bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()));
    ...

实际上,我不关心文件在哪里存在或不存在,方法应该继续执行。如果发生异常,它将被抛出export()之外

如何重写这个片段,这样就不会显示警告/错误,而不会在Findbug配置文件中禁用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-08 07:53:02

在这种情况下,您不必调用file.createNewFile(),因为文件无论如何都将由FileWriter创建。

但是,必须确保文件的父文件夹存在。

票数 5
EN

Stack Overflow用户

发布于 2013-03-08 07:48:11

f.createNewFile();返回boolean

如果命名文件不存在并已成功创建,则为true;如果命名文件已存在,则为false

将方法转换为boolean result = f.createNewFile();

如果您不关心文件是否存在,您可能应该更改代码,以排除exists的检查,并直接创建BufferedWriter,如果文件不存在,BufferedWriter将创建该文件。另外,如果仍然希望使用当前代码,请添加SuppressWarnings以忽略警告。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15289051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档