如果查询事务引发异常怎么办?

时间:2016-11-24 10:18:46

标签: android sqlite try-catch android-sqlite

如果在交易期间发生异常会怎样?将调用db.endTransaction(),但是会执行来自事务的任何查询吗?或者所有人都会被取消?

try {
    db.beginTransaction();
    db.setTransactionSuccessful();
} catch (SQLException e) {
    e.printStackTrace();
} finally {
    db.endTransaction();
}

1 个答案:

答案 0 :(得分:0)

transactions的重点是确保

  

SQLite中单个事务中的所有更改要么完全发生,要么根本不发生,即使将更改写入磁盘的行为也会中断

     
      
  • 程序崩溃,
  •   
  • 操作系统崩溃,或
  •   
  • 电源故障。
  •   

Android beginTransaction() documentation说:

  

当...交易结束时,该交易中完成的所有工作......将被提交或回滚。如果任何事务结束而没有标记为干净(通过调用setTransactionSuccessful),则将回滚更改。否则他们将被承诺。