我试着检查一个简单的波莉WaitAndRetry
class Program
{
public static void Main()
{
int i = 0;
var _retryPolicy = Policy
.Handle<Exception>()
.WaitAndRetry(Backoff.ExponentialBackoff(TimeSpan.FromSeconds(2), 10),
(exception, timespan) =>
{
Console.WriteLine($"Retry: {timespan}. \n ex: {exception}");
});
_retryPolicy.Execute(() =>
{
Console.WriteLine(i);
i++;
int.Parse("something");
});
Console.ReadLine();
}
}
在所有的重试失败后,我想抛出最后一个异常。我该怎么做呢?
例外结果:
重试:.。
重试:.。
重试:.。
我新的最后一个错误!
谢谢!
发布于 2022-05-11 13:17:05
您不必显式地重新抛出最后一个异常。
重试的工作方式如下:
.Handle<TEx>
或.Or<TEx>
子句,则检查重试限制是否已达到。.Handle<TEx>
或.Or<TEx>
子句,那么它将引发最后一个异常下面是来自正式文件的一个图表
还请注意,如果您在调试模式下运行应用程序,则当修饰方法抛出异常时,IDE可能会停止。这取决于您的IDE设置。
https://stackoverflow.com/questions/72201413
复制相似问题