【发布时间】:2016-11-24 10:18:46
【问题描述】:
如果在交易过程中发生异常怎么办? db.endTransaction() 将被调用,但任何来自事务的查询都会被执行?还是全部取消?
try {
db.beginTransaction();
db.setTransactionSuccessful();
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
【问题讨论】:
-
如果发生异常,您希望回滚事务。在这种情况下,所有写入都应该回滚或取消。
-
这真的取决于这些命令的作用!假设 db.setTransactionSuccessful() 是执行提交的点,并且只有在该数据被存储之后,通常在 catch 块中你应该有类似 db.setTransactionFail() 的东西,它将执行回滚。
标签: android sqlite try-catch android-sqlite