2010-03-08 42 views
8

這裏是交易的標準成語:如何在Android上回滾事務?

db.beginTransaction(); 
    try { 
    ... 
    db.setTransactionSuccessful(); 
    } finally { 
    db.endTransaction(); 
    } 

我想添加一個catch塊,我想發出一個回滾。是否有可能,並且我是否需要它?

回答

10

你不需要它。

如果上述代碼中的...出現異常,則您已有的代碼將回滾事務。在catch() {}塊之後執行finally {}塊。

+0

如果你自己的代碼得到一個異常呢?那麼你打算做的一半將會承諾。是否有明確的回滾? – Stroboskop

+0

「如果你自己的代碼得到異常呢?」 - 這就是上述代碼片段中的'...'所表示的內容。 「那麼你打算做的一半將會承諾。」 - 不,它不會。 「是否有明確的回滾?」 - 不,你不需要一個。 – CommonsWare

+1

哦,我沒有看到'db.setTransactionSuccessful();' – Stroboskop