錯誤處理是否可能更清晰,更具可讀性?我的版本看起來有點笨重:如何優化SQLiteOpenHelper的錯誤處理
public synchronized void doSomeTrans(...) throws Exception {
Exception ex = null;
SQLiteDatabase db = null;
boolean bTrans = false;
try {
db = getWritableDatabase();
db.beginTransaction();
bTrans = true;
db.execSQL(...);
db.execSQL(...);
db.setTransactionSuccessful();
}
catch (Exception ex1) {
ex = ex1;
}
if (db != null) {
if (bTrans != false)
db.endTransaction();
db.close();
}
if (ex != null)
throw ex;
}
而且,在我的版本我沒有圍繞endTransaction方法處理任何錯誤,如果此方法拋出異常,我的數據庫仍然存在打開。我認爲這不是很好,但不確定在try/catch塊上添加新內容是否是這種情況的最佳解決方案。
如果不需要getWritableDatabase,怎麼分貝如果不通過DB = getWritableDatabase聲明()? – seekingStillness 2018-02-08 13:55:52
@seekingStillness,它*是*需要的。我只是說你應該保留一個活動或服務的成員,而不是爲每個操作創建一個。 – 2018-02-08 23:01:27