当前位置: 首页 > 知识库问答 >
问题:

sonar显示,该方法可能无法清除已检查异常的流或资源

章博耘
2023-03-14
public boolean isAuditTrailEnabled(String masterAccessId) 
{
    String selectQuery = "select t.audit_flag from PARAMETER_MENU_ATTRIBUTES t where t.access_id = '"+masterAccessId+"'";
    PreparedStatement preparedStmnt = null;
    ResultSet resultSet = null;
    String flag = "N";

        if(connection == null)
        {
            initConnection();
        }   
        try {
            **preparedStmnt = connection.prepareStatement(selectQuery);**
            resultSet = preparedStmnt.executeQuery();
            if(resultSet.next())
            {
                flag = resultSet.getString(1);
            }
        }
        catch (SQLException e) {

            try {
                if (resultSet != null){
                    resultSet.close();
                }
                if (preparedStmnt != null){
                    preparedStmnt.close();
                }

            } catch (SQLException e1) {

            }

            return true;
        }
        finally{
            try {
                if (resultSet != null){
                    resultSet.close();
                }
                if (preparedStmnt != null){
                    preparedStmnt.close();
                }
                cleanup();
            } catch (SQLException e1) {
                return false;
            }

        }
        if(flag.equals("N")){
            return false;
        }else{
            return true;
        }

}

它显示了这个特定声明的问题。你能帮帮我吗?

共有1个答案

胡鸿禧
2023-03-14

结果集和语句始终应在单独的try-catch中关闭。。。即使2不能这样写。。。如果。。。或者如果。。。。先检查基本情况

if(something)
   {
      if(something)
    }
or

if((something) &&(something))
 类似资料:
  • 我正在使用Spring JDBCTemboard访问数据库中的数据,它工作正常。但是FindBugs在我的代码片段中指出了一个小问题。 代码: FindBugs问题: 方法可能无法清理流或资源的检查异常在这一行 有人能告诉我这到底是什么吗?我们如何解决这个问题? 我们将不胜感激:)

  • 我代码中的以下语句被SonarQube标记为一个关键问题。stmt=conn.createStatement(); 确切的问题是,“方法可能无法清理java.sql.检查异常的语句”。 下面是代码片段: SonarQube给出的规则如下: 方法可能无法在检查异常时清理流或资源此方法可能无法清理(关闭、处置)需要显式清理操作的流、数据库对象或其他资源。一般情况下,如果一个方法打开一个流或其他资源,该

  • 我正在使用FileWrite类写入文件。而且效果很好。但是FindBugs在我的代码片段中指出了一个小问题。 代码片段: Findbug报告: OBL_未满足_义务:方法可能无法清理流,或者资源WriteDataFile(字符串)可能无法清理java。伊奥。已检查异常的写入程序 我在哪一行遇到这个错误? 有人能告诉我这到底是什么吗?我们如何解决这个问题?

  • 问题内容: 在Java线程中,“运行”方法不能引发“检查的异常”。我在Core Java(第1卷)书中遇到了这个问题。有人可以解释其背后的原因吗? 问题答案: 有人可以解释其背后的原因吗? 是的,因为您抛出的任何异常都会被JVM仔细忽略。因此,将其抛出可能是一个错误(除非您对该线程具有特定的异常处理程序,请参阅有关该文档的文档)。没有理由煽动潜在的错误行为。 或者举个例子。 编辑 为什么父线程不能

  • 我有以下两个示例,我不清楚java.lang.Exception是如何处理的:作为检查的或未检查的异常。 以下方法编译成功: 在这里,我认为java.lang.Exception是威胁java.lang.RuntimeException或java.lang.Error。不处理也可以声明扔。 如果我们没有使用异常,而是使用了检查异常(它是java.lang.Exception的子类),那么您必须在方

  • 我正试图修改PySpark dataframe中的列值,如下所示: 这将生成以下异常: 调用O435时出错。跟踪:py4j.py4jException:Method或([class java.lang.string])在py4j.reflection.reflectionEngine.getMethod(reflectionEngine.java:318)在py4j.reflection.refl