我有这个用例,对于某些错误,我需要在重试之前执行一个操作;否则,只需重试。
像这样的东西:
try
{
action:
<action>
}
catch (SpecialException)
{
<cleanup>
goto action:
}
catch (Exception)
{
goto action:
}
波莉可以做到这一点吗?
我有这个用例,对于某些错误,我需要在重试之前执行一个操作;否则,只需重试。
像这样的东西:
try
{
action:
<action>
}
catch (SpecialException)
{
<cleanup>
goto action:
}
catch (Exception)
{
goto action:
}
波莉可以做到这一点吗?
注册句柄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
});