java - try-catch block 不抑制 java.lang.NullPointerException

标签 java

我收到 java.lang.NullPointerException 异常,我不确定为什么。我正在尝试使用 try-catch block ,但它不起作用。任何人都可以解释这个 block 有什么问题吗?

public PriceDataAdder(Connection conn) {
        try {
            this.conn = conn;
            statement = conn.prepareStatement("INSERT INTO `blah` (a,b,c,d,e,f,g,h,`i`,j) VALUE( ?,?,?,?,?,?,?,?,?,? )");
        } catch (SQLException ex) {
            Logger.getLogger(PriceDataAdder.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

最佳答案

try catch Exception 而不是 SQLException。它会起作用,因为 Exception 是所有异常的父类(super class),通过捕获它,您可以捕获所有可能在 try block 内生成的异常。

无论如何,问题可能是因为 connprepareStatement() 被调用时 null 引起的,首先要确保您正在传递调用 PriceDataAdder 方法的 Connection 的正确实例。

还要查看正在生成的日志,Logger 对象应该得到很好的利用。

关于java - try-catch block 不抑制 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13781129/

相关文章:

java - 使用 Package 限制 Autowiring 组件的集合

java - 在 Java 中实现定时器事件的最简单方法

java - 关于在 Tomcat 中运行 JBOSS EJB 的查询

java - 为什么添加新插件后需要重启Intellij IDEA?

java - Hibernate - 检索所有表信息 - 列名、索引、长度并填充为表

java - JAVA中汉字生僻字从UTF8到BIG5的映射

java - 在装有 J2SE 6.0 的 Mac OS 上启动 Eclipse MAT 时 JVM 终止

java - 我的 Math.random() 方法总是返回 1 ?为什么?

java - Grails 中 Quartz 工作的 withTransaction?

java - JPA 给自己惹麻烦