我尝试新建一个 ODB 数据库,但是,有时即使我db 成功xxx.db
也不存在。new
使用下面的代码,它无法捕获异常,但是可以进入if(!_file)
string dbFile = getPalBundle()->getFileStorageProvider()->getDocumentsPath(userId + "/xxx.db");
auto db = std::shared_ptr<odb::sqlite::database>(new odb::sqlite::database(dbFile, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_SHAREDCACHE | SQLITE_OPEN_FULLMUTEX, false));
if(db == nullptr)
{
ret = false;
}
// check database avalible
try {
db->schema_version();
} catch (...) {
DLOG(kTagDaoFactory, "Datase file damaged, logout");
ret = false;
}
fstream _file;
_file.open(dbFile, ios::in);
if (!_file) {
ret = false;
DLOG(kTagDaoFactory, "Data base file no exist, logout");
}
我不知道会发生什么,有人可以帮助我吗?提前致谢!