从哪里获取Android SQLite中的数据库错误信息(例如,由于违反非null而导致插入失败)

时间:2011-03-22 10:56:58

标签: android database sqlite exception

我刚刚意识到我的一个数据库insert()命令由于违反了非空约束而失败 - 我只是没有将数据填入此字段。

问题是,我花了很多年才找出这个插入返回-1的原因,因为我无法在任何地方找到错误或异常。

我希望,我想对于更复杂的数据库和查询,最重要的是,从数据库中获取某些信息真正发生的事情会导致数据库访问失败,但我找不到任何有关此信息的信息。任何地方。

2 个答案:

答案 0 :(得分:28)

我发现可以使用insertOrThrow()而不是insert,至少当出现错误时会出现异常,说android.database.sqlite.SQLiteConstraintException:错误代码19:约束失败 - 即使我真的希望/期望它会更清楚,并告诉我哪个列有错误左右,但也许我对SQLIte的特性要求太高了。

答案 1 :(得分:5)

你看过LogCat了吗?关于发生什么事情的原因通常都很冗长。