que he visto este patrón varias veces:Usando finalmente en lugar de captura
bool success = false;
try
{
DoSomething();
success = true;
}
finally
{
if (!success)
Rollback();
}
Y me he estado preguntando: ¿Por qué es mejor que el uso de captura para restauraciones?
try
{
DoSomething();
}
catch
{
Rollback();
throw;
}
¿Cuáles son las diferencias entre las dos formas de garantizar que los cambios se retrotraigan a la falla?
Esto tiene sentido. No me di cuenta de que Java no permite que vuelvas a lanzar excpetions correctamente. Y aquí estaba pensando que esto iba a tener algo que ver con secciones críticas y cosas como ... – configurator
@configurator: Ahora que lo mencionas, creo que de hecho puede haber una conexión con [Regiones de Ejecución Restringida] (http://msdn.microsoft.com/en-us/library/ms228973.aspx). – dtb
-1 para "En Java no hay forma de volver a lanzar una excepción" - [aparte de 'throw e', es decir] (http://stackoverflow.com/a/1097539/265143). –