因为我正在尝试实现导入/导出数据,所以我想测试如果导入的文件不是用于管理错误的 sqlite 数据库会发生什么。
在 logcat 我有以下内容:
03-22 15:02:39.957: E/SQLiteLog(20407): (26) file is encrypted or is not a database
03-22 15:02:39.978: E/DefaultDatabaseErrorHandler(20407): Corruption reported by sqlite on database: /data/data/com.crbin1.ltd/databases/dbltd
03-22 15:02:40.017: E/DefaultDatabaseErrorHandler(20407): deleting the database file: /data/data/com.crbin1.ltd/databases/dbltd
该应用程序只需为用户创建一个新的空数据库而不会出错。
db import 后我调用以下代码(DatabaseLTD 是我的 SQliteOpenHelper 类)
private void checkImportedDb() {
try {
DatabaseLTD dbltd = new DatabaseLTD(mCtx);
SQLiteDatabase db = dbltd.getReadableDatabase();
} catch (SQLiteException e) {
e.printStackTrace();
}
}
但我无法拦截“文件已加密或不是数据库”错误。我怎样才能捕捉到错误来管理它?