私はこのパターンを数回見ました:
bool success = false;
try
{
DoSomething();
success = true;
}
finally
{
if (!success)
Rollback();
}
そして、私は疑問に思っていました: ロールバックに catch を使用するよりもなぜこれが優れているのですか?
try
{
DoSomething();
}
catch
{
Rollback();
throw;
}
失敗時に変更を確実にロールバックする 2 つの方法の違いは何ですか?