there is a trigger

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" ); 

add code

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

in val, adding 6 records will be -1, in android studio the console shows an exception, but try catch does not catch anything

  • в android studio консоль исключение показывает what в android studio консоль исключение показывает ? - post_zeew

1 answer 1

when inserting, you need to use insertOrThrow , you need to catch an exception SQLiteConstraintException

 try { db.insertOrThrow(STUDENTS_TABLE_NAME, null, cv); } catch (SQLiteConstraintExceptione e) { Log.e("TriggerERROR", e.toString()); }