Я видел этот шаблон несколько раз:
bool success = false;
try
{
DoSomething();
success = true;
}
finally
{
if (!success)
Rollback();
}
И мне было интересно: почему это лучше, чем использование catch для откатов?
try
{
DoSomething();
}
catch
{
Rollback();
throw;
}
В чем разница между двумя способами проверки отката изменений при сбое?