2010-03-08 18 views
8

Aquí es el lenguaje estándar para las transacciones:¿Cómo revertir una transacción en Android?

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

Quiero añadir un bloque catch, y quiero emitir una reversión. ¿Es posible, y en absoluto lo necesito?

Respuesta

10

No lo necesita.

Si hay una excepción en el código anterior en el ..., el código que ya tiene revertirá la transacción. El bloque finally {} se ejecuta después del bloque catch() {}.

+0

¿Qué sucede si su propio código obtiene una excepción? Entonces la mitad de lo que pretendía hacer se comprometerá. ¿Hay una reversión explícita? – Stroboskop

+0

"¿Qué sucede si su propio código recibe una excepción?" - eso es lo que indica el '...' en el fragmento de código anterior. "Entonces se comprometerá la mitad de lo que pretendía hacer". - No, no lo hará. "¿Hay una reversión explícita?" - No, y no necesitas uno. – CommonsWare

+1

Oh, no vi el 'db.setTransactionSuccessful();' – Stroboskop

Cuestiones relacionadas