обработка исключений триггеров sqlite в коде программы на java

388
26 декабря 2016, 23:35

есть триггер

sqLiteDatabase.execSQL("CREATE TRIGGER " + TRIGGER_INSERT_NAME
            + " BEFORE INSERT ON " + STUDENTS_TABLE_NAME
            + " WHEN (SELECT count(*) FROM " + STUDENTS_TABLE_NAME
            + " WHERE " + STUDENTS_COLUMN_GROUP_ID + " = NEW." + STUDENTS_COLUMN_GROUP_ID
            + ") > 5 "
            + "BEGIN "
            + "SELECT RAISE (ABORT, 'Six items are already inserted.'); "
            + "END"
    );

код добавления

try {
            val = db.insert(STUDENTS_TABLE_NAME, null, cv);
            Log.d("QWERTT", "QWE" + val);
        }
        catch (SQLException e)
        {
            Log.e("DATAEERROR", e.toString());
        }

в val, при добавлении 6 записи будет -1, в android studio консоль исключение показывает, но try catch ничего не ловит

Answer 1

при вставке нужно пользоваться insertOrThrow , ловить исключение нужно SQLiteConstraintException

try {
    db.insertOrThrow(STUDENTS_TABLE_NAME, null, cv);
}
catch (SQLiteConstraintExceptione e)
{
    Log.e("TriggerERROR", e.toString());
}
READ ALSO
Возведение в степень с условием [требует правки]

Возведение в степень с условием [требует правки]

Дано действительное положительное число a и целое неотрицательное число n

403
Добавление заголовка в запрос Java

Добавление заголовка в запрос Java

Здравствуйте, господа! Работал тут с API ЯДиска, все шло хорошо до момента отправки авторизации не из SDKТут просят сделать так:

385
Заряд батареи каждый раз выводится на новой строке

Заряд батареи каждый раз выводится на новой строке

Нужно выводить заряд батареи на экран что собственно и делаю ,но дальше он должен изменятся в зависимости от уровня ,но у меня он печатает...

379
Разработка приложений для Android

Разработка приложений для Android

Я учусь java и разработке на Android и тут я задумался над одним вопросомКак понять, что технические характеристики смартфона будут поддерживать...

332