SonarLint 提示“关闭这个'FileReader'”,当我关闭时实际上在finally块中关闭了它

Posted

技术标签:

【中文标题】SonarLint 提示“关闭这个\'FileReader\'”,当我关闭时实际上在finally块中关闭了它【英文标题】:SonarLint prompt "Close this 'FileReader'", when I close actually closed it in the finally blockSonarLint 提示“关闭这个'FileReader'”,当我关闭时实际上在finally块中关闭了它 【发布时间】:2016-07-17 21:00:01 【问题描述】:

当我在 Eclipse 中使用 sonarlint 对 finally 块中的 FileReader 进行分析时,sonarlint 会提示我“关闭这个‘FileReader’”,它是由“资源应该关闭”规则生成的。这是来自 SonarLint 的错误吗?这是 SonarLint 的错误吗?

我不能使用 try-with-resources 功能,因为我们的项目使用的是 JDK 1.6

代码如下:

FileReader fr = null;
try 
    fr = new FileReader(pidFile);
    oldPid = new BufferedReader(fr).readLine();

catch (IOException e) 
    LOGGER.error(e.getMessage(), e);

finally 
    try 
        if (fr != null) 
            fr.close();
        
    
    catch (IOException e) 
        LOGGER.error(e.getMessage(), e);
    

【问题讨论】:

【参考方案1】:

您没有在 finally 块中关闭缓冲读取器。我建议您删除 finally 块中的所有内容并添加以下内容IOUtils.closeQuietly(fr); IOUtils.closeQuietly(oldPid);

【讨论】:

以上是关于SonarLint 提示“关闭这个'FileReader'”,当我关闭时实际上在finally块中关闭了它的主要内容,如果未能解决你的问题,请参考以下文章

sonarlint report监测结果分类

sonarlint eclipse 窗口没有

Idea: SonarLint插件使用

sonarlint可以检测js代码吗

SonarLint插件安装

IDEA 代码质量规范插件SonarLint