Использование finally вместо catch

Я видел этот шаблон несколько раз:

        bool success = false;
        try
        {
            DoSomething();
            success = true;
        }
        finally
        {
            if (!success)
                Rollback();
        }

И мне было интересно: почему это лучше, чем использование catch для откатов?

        try
        {
            DoSomething();
        }
        catch
        {
            Rollback();
            throw;
        }

В чем разница между двумя способами обеспечения отката изменений в случае сбоя?

11
задан configurator 23 May 2012 в 14:15
поделиться