Проверка, если DB4o ObjectContainer закрыт

DB4O, кажется, не предоставляет метод для проверки, если база данных (ObjectContainer) закрыта. Итак, прямо сейчас, это код, который я использую, чтобы увидеть, если он закрыт. Я чувствую, что есть лучший способ сделать это.

    public ObjectContainer getDb() {

    if (db == null) {
        System.out.println("db was null in " + dbci
                + " connection. Had to create new DB object.");
        db = Db4oEmbedded.openFile(dbci.getConnectionName());
    }
    try{
        db.query();
    }
    catch(Exception e){
         db = Db4oEmbedded.openFile(dbci.getConnectionName());
    }
    return db;
}

Есть ли способ обойти блок try/catch?

1 ответ

Решение

db4o предоставляет метод для проверки, закрыт ли контейнер объекта или нет.

Взгляните на метод ExtObjectContainer#isClosed().

http://source.db4o.com/db4o/trunk/db4oj/core/src/com/db4o/ext/ExtObjectContainer.java

Надеюсь это поможет

Другие вопросы по тегам