1

次の方法を使用して、Java DB への接続を閉じています。

public void shutdownDisconnect() {

    if(connectionExists) {
        String databaseURL = getDBurl();
        dbProperties.put("shutdown", "true");
        try {
            DriverManager.getConnection(databaseURL, dbProperties);
            System.out.println("success"); 
        } catch (SQLException ex) {
           //shutdown always results in an SQLException
            System.out.println(ex); 
           //This exeption is:java.sql.SQLNonTransientConnectionException: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'databasename' shutdown.
        }
        connectionExists = false;
    }
}

私の最初System.out.printlnは何も表示されません。つまり、試行が実行されず、上記の例外が発生します。

私が知っているように、「シャットダウンが成功すると常にSQLExceptionが発生します」が、tryステートメントが実行されないということですか? ご協力いただきありがとうございます。

4

2 に答える 2

3

tryそうしないと、ブロック実行され、例外はスローされません。

残念ながら、それが Derby でのシャットダウンのしくみです。

于 2012-03-27T06:47:16.843 に答える