有人可以解释为什么下面的代码在第一次尝试时失败并抛出未处理的异常吗?非常感激。
using Polly;
using System;
using System.Threading;
namespace TestPolly
{
class Program
{
static void Main(string[] args)
{
Policy.Handle<DivideByZeroException>().Retry(10).Execute(() => DoSomething(0));
}
private static void DoSomething(int num)
{
Thread.Sleep(1000);
Console.WriteLine("Doing division");
var y = 2 / num;
}
}
Run Code Online (Sandbox Code Playgroud)
您只会看到调试器因异常而中断,如Polly wiki 上的这篇文章中详细解释的那样。
有人可以解释为什么下面的代码在第一次尝试时失败并抛出未处理的异常吗?
该代码不会失败,也不会抛出未处理的异常。当您按 F5(或在调试器中单击“继续”)继续调试时,您将看到执行继续 - 并且异常正在由策略处理。