java - 关闭 JDBC 连接时出现问题

标签 java jdbc

我有一个 jdbc 连接,我试图关闭它,但它返回 NullPointerException。

finally
    {
        try
        {
            if(load.dbConnection!=null)
            {
                load.dbConnection.close();
                LOGGER.info("Connection closed successfully");
            }
        }
        catch(Exception e)
        {
            LOGGER.info("Exception is closing db connection"+e.getLocalizedMessage()+" "+e.getMessage()+" "+e.toString());

        }
    }

堆栈跟踪如下所示:

Exception occured nullLevel [0] - File Name: 'loadData.java' Method Name: 'verifyFiles' Line Number: '896' Message: 'java.lang.Exception'
Level [1] - File Name: 'loadData.java' Method Name: '<init>' Line Number: '106' Message: 'java.lang.Exception'
Level [2] - File Name: 'loadData.java' Method Name: 'main' Line Number: '119' Message: 'java.lang.Exception'

我在上面的代码中检查 null 条件,尽管如此,为什么控件进入 block 并尝试关闭连接,并且还给了我一个 java.lang.NullPointerException。

//Initial assignment
loadData load = null;

    try
    {
    load = new loadData(); //Here the constructor calls 3 functions and exception occurs in one of those functions.

    }
    catch(Exception e){....}
    finally
    {
    //The finally code shown above
    }

在上述情况下,当构造函数中发生异常时,负载将保持为空,如第一个赋值所示。

最佳答案

我只能建议更仔细地调试您的代码,如下所示:

        //Initial assignment
        loadData load = null;
        System.out.println("logger is a null?: " + LOGGER);
        LOGGER.info("load: "+load);
        try
        {

            load = new loadData(); //Here the constructor calls 3 functions and exception occurs in one of those functions.
            LOGGER.info("load init: "+load);
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally
        {
            LOGGER.info("finally load: "+load);
            try
            {
                LOGGER.info("finally connection: " + load.dbConnection);
                if(load.dbConnection!=null)
                {
                    load.dbConnection.close();
                    LOGGER.info("Connection closed successfully");
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }

关于java - 关闭 JDBC 连接时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568095/

相关文章:

java - 日期的 Jdbc sql 语法错误

java - JDBC 删除条目 - 主键/CONCUR_UPDATABLE 问题

java - ORA-56721 : I/O data limit exceeded - session terminated

java - 如何使用 Java 中的通用方法来 CRUD MySQL 中的任何表,使用带有 Criteria 的 Hibernate,传递表名和/或字段作为参数?

java - 使用 javax.mail.authenticator 进行身份验证时的 swing 应用程序问题

Java-检查是否按下了控制键

java - Android 应用程序停止工作

java - 如何在 JNA 中映射枚举

java - 从单元测试连接时,HSQL 立即关闭连接

java - 结果集已关闭检索时出错