我有以下代码:
var policyResult = await _circuitBreakerPolicy.ExecuteAndCaptureAsync(async () =>
{
return await configuredTaskAwaitable;
});
return policyResult.Result;
当断路器处于打开状态时,结果简单地为空,不会抛出异常。如果电路打开,它不应该抛出异常吗?
我有以下代码:
var policyResult = await _circuitBreakerPolicy.ExecuteAndCaptureAsync(async () =>
{
return await configuredTaskAwaitable;
});
return policyResult.Result;
当断路器处于打开状态时,结果简单地为空,不会抛出异常。如果电路打开,它不应该抛出异常吗?
.ExecuteAndCaptureAsync()
旨在捕获抛出到policyResult.FinalException
属性中的任何异常。你应该在那里找到异常。(该policyResult.Result
属性是null
(严格地说:default(TResult)
对于任何东西TResult
),因为确实没有获得任何结果。)
如果您希望通过策略执行以保留最初抛出的任何异常而不是捕获它,请使用直接.ExecuteAsync(...)