Почему SQLException не перехватывает SQLiteExcpetion? - PullRequest
8 голосов
/ 17 ноября 2011

В одном из моих приложений для Android есть код, который перехватывает SQLException, но недавно я обнаружил, что он не перехватывает исключение SQLiteException.Понятно, что SQLiteException является потомком SQLException, так почему же его не перехватить?Вот некоторый код, который я использую.

try {
    ... // something here that will throw an SQLiteException
} catch (SQLException e) {
    e.printStackTrace();
}

Правильно ли мое предположение, что я должен ловить исключение SQLiteException?

Если это вообще имеет значение, я использую этот код не внутриДеятельность, но внутри класса, который расширяет класс Application.

В качестве примечания, я добавил еще catch( Exception e ){}, чтобы посмотреть, сработает ли это, и действительно ли оно работает, как ожидалось.

Ответы [ 2 ]

16 голосов
/ 17 ноября 2011

Существует два типа исключения SQLE:

android.database.SQLException
java.sql.SQLException

. Убедитесь, что вы используете первый , а не второй.

3 голосов
/ 17 ноября 2011

Правильно ли мое предположение, что я должен перехватывать SQLiteException?

Вы говорите о java.sql.SQLException или android.database.SQLException?

SQLiteException extends android.database.SQLException.Проверьте ваш импорт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...