首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用WaitAndRetry抛出最终错误并执行?

如何使用WaitAndRetry抛出最终错误并执行?
EN

Stack Overflow用户
提问于 2022-05-11 12:53:03
回答 1查看 145关注 0票数 1

我试着检查一个简单的波莉WaitAndRetry

代码语言:javascript
运行
复制
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();
    }
}   

在所有的重试失败后,我想抛出最后一个异常。我该怎么做呢?

例外结果:

重试:.。

重试:.。

重试:.。

我新的最后一个错误!

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-11 13:17:05

您不必显式地重新抛出最后一个异常。

重试的工作方式如下:

  • 如果修饰方法引发异常,并且策略定义中有一个相关的.Handle<TEx>.Or<TEx>子句,则检查重试限制是否已达到。
    • 如果没有超过重试限制,那么它将执行另一次重试尝试。
    • 如果已达到重试限制,则将引发最后一个异常。

  • 如果没有关联的.Handle<TEx>.Or<TEx>子句,那么它将引发最后一个异常

下面是来自正式文件的一个图表

还请注意,如果您在调试模式下运行应用程序,则当修饰方法抛出异常时,IDE可能会停止。这取决于您的IDE设置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72201413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档