gpt4 book ai didi

java - Eclipse 中的死代码警告 - 这是 Eclipse 中的错误吗?还是我忽略了一些显而易见的事情?

转载 作者:行者123 更新时间:2023-12-01 06:30:36 25 4
gpt4 key购买 nike

通过这个(简化的)代码示例,Eclipse (Kepler SR2) 对最里面的 if 语句 (if (con != null)) 发出警告,死代码 .

public class DbManager {
public String getSingleString(String query) throws SQLException {
DbManager dbmgr = new DbManager();
Connection con = null;
try {
con = dbmgr.getConnection("user", "pwd", URL);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
if (con != null) {
PreparedStatement pstmt = null;
ResultSet rset = null;
pstmt = con.prepareStatement(query.toString());
rset = pstmt.executeQuery();
if (rset != null && rset.next()) {
return (rset.getString(1));
}
}
}
return null;
}
}

通常,在 try 之后的行上定义的数据库连接将创建一个连接,然后有问题的 if 语句将为 true。关于死代码的警告真的正确吗?

最佳答案

如果dbmgr.getConnection("user", "pwd", URL);返回异常,则con将永远不会被分配一个非空引用。

您用 null 初始化了 con。因此,当抛出异常并且您的代码到达 catch 时,con 将为 null。这就是为什么该检查 (con != null) 没有意义。

关于java - Eclipse 中的死代码警告 - 这是 Eclipse 中的错误吗?还是我忽略了一些显而易见的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26803063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com