使用sqlite insertOrThrow的正确方法

时间:2017-07-27 05:15:04

标签: android sqlite bugsnag

我的代码看起来像这样:

ContentValues values = new ContentValues();
values.put("year", year);
values.put("month", month);
database.insert(MySQLiteHelper.TABLE_DATA, null, values);

一切正常,但不幸的是,插入查询将始终在我的一个用户设备上返回-1。我的应用程序有bug,所以现在我改变了

  

插入

  

database.insertOrThrow

希望当用户的手机再次发生错误时,bugsnag会通知我。但只是为了确保(因为我之前从未使用过insertOrThrow;通常只是插入封装在try catch中),上面的代码是否足够?当插入时发生错误时,bugsnag会捕获它吗?也许我的问题可归纳为'如何处理insertOrThrow抛出?'

2 个答案:

答案 0 :(得分:2)

如果发生错误,

insertOrThrow会抛出SQLException,这是RuntimeException的子类。

Bugsnag会通过注册Thread.UncaughtExceptionHandler自动处理您应用中未捕获的任何异常,因此您无需执行任何其他操作即可捕获该事件。

答案 1 :(得分:0)

请确保在解决此问题的情况下,将创建表时已声明的所有值都放入该表中。