0

我有这个用例,对于某些错误,我需要在重试之前执行一个操作;否则,只需重试。

像这样的东西:

try
{
action:
    <action>
}
catch (SpecialException)
{
    <cleanup>
    goto action:
}
catch (Exception)
{
    goto action:
}

波莉可以做到这一点吗?

4

1 回答 1

2

注册句柄Retry(Action<Exception, int> onRetry),重试前将执行该操作。所以你可以在某些情况下清理。

Policy.Handle<Exception>().Retry((ex, count) => {
    if(ex is NotImplementedException)
    {
        Console.WriteLine("clear up");
    }
    }).Execute(() => {
        Console.WriteLine("throw exception");
        throw new Exception();//or NotImplementedException
    });
于 2017-10-17T09:29:36.207 回答