Polly ExecuteAndCaptureAsync не выдает исключений, когда выключатель открыт
У меня есть следующий код:
var policyResult = await _circuitBreakerPolicy.ExecuteAndCaptureAsync(async () =>
{
return await configuredTaskAwaitable;
});
return policyResult.Result;
Когда автоматический выключатель находится в разомкнутом состоянии, результат просто равен нулю, и исключение не выдается. Разве это не должно вызвать исключение, если цепь разомкнута?
1 ответ
.ExecuteAndCaptureAsync()
предназначен для захвата любых исключений, брошенных в policyResult.FinalException
имущество. Вы должны найти исключение там. (The policyResult.Result
свойство null
(строго: default(TResult)
за что TResult
) потому что действительно никакого результата не было получено.)
Если вы хотите, чтобы выполнение через политику оставляло любое исключение как первоначально выданное, а не перехватывало его, используйте прямое .ExecuteAsync(...)