android – SQLiteConstraintException不要内部catch

android – SQLiteConstraintException不要内部catch,第1张

概述当我运行该代码时,我在db.insert内部有一个异常: 08-29 15:40:17.519: E/SQLiteDatabase(3599): android.database.sqlite.SQLiteConstraintException: column date is not unique (code 19) 这是正常的,因为我已经把这个价值作为一个关键. 所以在这种情况下,我做了一个SQ 当我运行该代码时,我在db.insert内部有一个异常:
08-29 15:40:17.519: E/sqliteDatabase(3599): androID.database.sqlite.sqliteConstraintException: column date is not unique (code 19)

这是正常的,因为我已经把这个价值作为一个关键.
所以在这种情况下,我做了一个sqliteConstraintException的捕获,但是当我运行代码时,我从来没有在catch中.

我究竟做错了什么?

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

谢谢.

整个日志:

08-29 15:55:55.870: E/sqliteDatabase(3828): Error inserting MO=0 date=2012-08-08 MT=108-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.access0(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)
解决方法 请改用db.insertOrThrow(). 总结

以上是内存溢出为你收集整理的android – SQLiteConstraintException不要内部catch全部内容,希望文章能够帮你解决android – SQLiteConstraintException不要内部catch所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存