java - 潜在的空指针访问。该变量在此位置可能为空。 java.lang.NullPointerException

标签 java nullpointerexception

我知道关于此错误存在很多类似的主题,但我尝试了一些建议,但我的问题仍然没有保存。 我正在关注本教程:https://www.youtube.com/watch?v=B3gEbC37DAM&list=PL1A506B159E5BD13E&index=2

这是我的代码:

public class JdbcDaoImpl {    
  public Circle getCircle(final int circleId) {
    Connection conn = null;

    try {
        String driver = "org.apache.derby.jdbc.ClientDriver";
        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection("jdbc:derby//localhost:1527//db");
        PreparedStatement ps = conn.prepareStatement("SELECT * FROM circle where id= ?");
        ps.setInt(1, circleId);

        Circle circle = null;
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            circle = new Circle(circleId, rs.getString("name"));
        }
        rs.close();
        ps.close();
        return circle;
    } catch (Exception e) {
        throw new RuntimeException(e);

    } finally {
        try {
            conn.close();

        } catch (SQLException e) {
        }

    }
  }
}

关于“conn.close();”它说:潜在的空指针访问。该变量在此位置可能为空。 当我运行程序时出现此错误: Exception in thread "main"java.lang.NullPointerException

我尝试了在类似主题上看到的解决方案,例如:

if(conn!=null){
    conn.close();
}

但我仍然有错误。

预先感谢您的帮助!

最佳答案

最后 block 总是在您使用 try catch 时执行,当 conn = DriverManager.getConnection("jdbc:derby//localhost:1527//db"); 抛出 NullPointerException ,它被您的 catch (Exception e) 捕获,然后finally block 开始在您执行的位置执行 conn.close(),但是你的 conn 对象是 NULL ,它再次抛出 NullPointerException ,它没有被捕获,因为你正在捕获 catch (SQLException e )

关于java - 潜在的空指针访问。该变量在此位置可能为空。 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46153205/

相关文章:

java - Spring Boot定义多个交换

android - 包含 fragment 的框架布局中的 View 的 findViewById 失败

java - 在 Android 上嵌入 Rhino 的问题

java - 带有 NullPointerException 的简单 Java 音乐数据库

使用新节点时出现 JavaFX 空指针异常

Android:将新项目添加到列表后,ListView 中的 NullPointerException onItemClick

java - .sql 文件中应包含冒号

java - 什么是NullPointerException,我该如何解决?

java - 以 RESTful 方式上传文件?

java - 每半秒同步一次数据库是个好主意吗?