我的一个Android应用程序中有一些代码可以捕获SQLException,但我最近发现它没有捕获SQLiteException。显然,SQLiteException是SQLException的子代,所以它为什么不被捕获?这是我正在使用的一些代码。
try {
... // something here that will throw an SQLiteException
} catch (SQLException e) {
e.printStackTrace();
}
我的假设是否正确,我应该捕获SQLiteException?
如果它很重要,我使用的代码不在Activity的内部,而是在扩展Application
类的类中。
作为旁注,我确实添加了一个额外的catch( Exception e ){}
,看看它是否有效,并确实按预期工作。
答案 0 :(得分:16)
有两种类型的SQLException:
android.database.SQLException
java.sql.SQLException
确保您使用第一个而不是第二个。
答案 1 :(得分:3)
我的假设是否正确,我应该捕获SQLiteException?
您是在谈论java.sql.SQLException
还是android.database.SQLException
?
SQLiteException
延伸android.database.SQLException
。检查你的进口。