Khi tôi chạy mã mà tôi có bên trong db.insert một ngoại lệ:SQLiteConstraintException không đi vào bên trong bắt
08-29 15:40:17.519: E/SQLiteDatabase(3599): android.database.sqlite.SQLiteConstraintException: column date is not unique (code 19)
Đó là bình thường, bởi vì tôi đã có giá trị như một chìa khóa. Vì vậy, trong trường hợp đó tôi bắt được SQLiteConstraintException
nhưng tôi không bao giờ bị kẹt bên trong khi tôi chạy mã.
Tôi đang làm gì sai?
try {
db.insert(TABLE_STATISTICS, null, values);
} catch (SQLiteConstraintException e) {
Log.d("entered", "entered the exception");
ContentValues valuesUp = new ContentValues();
valuesUp.put((isMT ? KEY_MT : KEY_MO), change);
db.update(TABLE_STATISTICS, valuesUp, KEY_DATE + "=?",
new String[] { message_date });
}
Cảm ơn bạn.
toàn bộ nhật ký:
08-29 15:55:55.870: E/SQLiteDatabase(3828): Error inserting MO=0 date=2012-08-08 MT=1
08-29 15:55:55.870: E/SQLiteDatabase(3828): android.database.sqlite.SQLiteConstraintException: column date is not unique (code 19)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:775)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at xx.xxx.xxx.xx.xxxx.StatisticsHolderDay.updateCounterNextStep(StatisticsHolderDay.java:124)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at xx.xxx.xxx.xx.xxxx.StatisticsHolderDay.updateCounter(StatisticsHolderDay.java:102)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at xx.xxx.xxx.xx.xxxx.LastMonthActivity.onStart(LastMonthActivity.java:146)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.Activity.performStart(Activity.java:5018)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.ActivityThread.access$600(ActivityThread.java:130)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.os.Handler.dispatchMessage(Handler.java:99)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.os.Looper.loop(Looper.java:137)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.app.ActivityThread.main(ActivityThread.java:4745)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at java.lang.reflect.Method.invokeNative(Native Method)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at java.lang.reflect.Method.invoke(Method.java:511)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at dalvik.system.NativeStart.main(Native Method)
Bạn có chắc chắn rằng lỗi này là từ lần chèn này không? Đăng toàn bộ Đăng nhập xin vui lòng. – iTurki
@iturki đã cập nhật câu hỏi chính với toàn bộ Nhật ký. Thống kêHolderDay.java:124 giống như nơi tôi chèn câu hỏi vào. – Mano