【发布时间】:2025-12-28 18:40:11
【问题描述】:
我正在尝试专门为 code 19 捕获以下异常。 有什么方法可以获取 SQLiteConstraintException 的 the error code 吗?还是我应该简单地对消息描述进行“包含”检查?
03-24 14:46:45.430:W/System.err(2219):android.database.sqlite.SQLiteConstraintException:主键必须是唯一的(代码 19)
try {
res = database.insertOrThrow(EMP_TABLE, null, values);
} catch (android.database.sqlite.SQLiteConstraintException e) {
e.printStackTrace();
//something like e.getErrorCode(); }
我的解决方法是;
if(e.getMessage().contains("code 19"))
Log.d(TAG, "Key Already exists !");
【问题讨论】:
-
不是捕获异常,而是检查给定的行是否已经存在。那么你就不必处理异常了。
-
我该如何检查?通过另一个 sql 语句?
-
你为什么需要那个?您可以使用 res = database.insert(EMP_TABLE, null, values);你不会得到任何例外。您只需要检查 res 的值。如果是 -1 则有一些错误,否则没有。
-
我需要知道密钥是否已经存在,以便我会提示用户是否要更新行。
-
@shamaleyte 没错,通过另一个 sql 查询。请在*.com/questions/20415309/… 线程中找到更多信息。
标签: java android sqlite exception