【发布时间】:2017-02-04 00:59:30
【问题描述】:
例如我有这样的事情:
public void saveFoodatas(List<Foodata> foodataList) {
DatabaseHelper.database.beginTransaction();
try {
for (Foodata foodata : foodataList) {
saveFoodata(foodata);
}
DatabaseHelper.database.setTransactionSuccessful();
}
finally {
DatabaseHelper.database.endTransaction();
}
}
其中DatabaseHelper 是一个扩展SQLiteOpenHelper 的类,database 是一个SQLiteDatabase。
在这个函数中,我试图让你将大量对象保存/提交到数据库,但如果出现故障,则不要提交任何更改。
我相信它当前的设置是正确的(如果有错误,它会离开我认为的 try 块并直接进入 finally,因为没有 catch),但我的问题是如何正确触发故障条件。我需要saveFoodata 来“抛出异常”吗?如果函数在我没有做任何尝试/捕获/抛出的情况下遇到某种故障,那也算吗?我该如何处理saveFooData()?
【问题讨论】:
标签: java android sqlite error-handling