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(...)

Другие вопросы по тегам