WCDB 避坑指南

148 阅读1分钟

1. 事务中禁止抛异常

涉及的 API 接口:

bool runTransaction(TransactionCallback inTransaction);
bool runPausableTransactionWithOneLoop(TransactionCallbackForOneLoop inTransaction);

WCDB 内部在调用 inTransaction 函数前,申请了事务相关资源,并在函数返回后释放事务相关资源。一旦 inTransaction 抛出异常,会造成该函数后紧跟的释放资源代码得不到执行,从而可能给你的程序带来崩溃或死锁。一定要小心!!!