编程语言
首页 > 编程语言> > java-道奇-已知为null的值的冗余nullcheck

java-道奇-已知为null的值的冗余nullcheck

作者:互联网

下面是我得到声纳违反的代码

public static Connection getConnection(
        String db)
        throws SQLException {

        Connection connection = null;

        try {
            Driver dbRriver = (Driver) Class.forName(driver).newInstance();
            Properties props = new Properties();
            props.put("user", PropertyLoader.get("user123"));
            props.put("password", PropertyLoader.get("pass"));
            connection = dbRriver
                    .connect(PropertyLoader.get("URL"), props);
        } catch (Exception e) {
            **if(connection!= null){
            connection.close();**
            }
            LOGGER.error(IN_EXCEPTION, e);
        }
        return connection;
    }

在关闭连接之前,需要先检查连接是否为空,但是声纳给出的冲突为“ Dodgy-值已知为冗余的冗余nullcheck”.请提出建议,因为我可以在不删除null检查的情况下避免这种违反情况.

解决方法:

因为无论哪种方式,如果最终陷入困境,连接将始终为空.有几个地方可以有例外,但是所有这些都在分配连接之前= dbRriver.connect(PropertyLoader.get(“ URL”),props);
因此,catch永远为空.
是的,您需要按照@Stultuske的建议将这些代码最终放入

标签:sonarqube,code-analysis,findbugs,java
来源: https://codeday.me/bug/20191027/1947792.html