2017-04-04 14 views
0

나는 다음과 같은 코드가 있습니다 폴리 ExecuteAndCaptureAsync 예외를 throw하지

var policyResult = await _circuitBreakerPolicy.ExecuteAndCaptureAsync(async() => 
    { 
     return await configuredTaskAwaitable; 
    }); 

return policyResult.Result; 

회로 차단기가 오픈 상태에

이 결과는 단순히 null의 경우, 어떠한 예외가 발생하지됩니다. 회로가 열려있는 경우는 예외를 던져 야해?

답변

0

.ExecuteAndCaptureAsync()policyResult.FinalException 특성에 designed to capture any exceptions thrown입니다. 당신은 거기에 예외를 찾아야한다. 합니다 (policyResult.Result 속성은 엄격하게 null (이다. default(TResult) 어떤 TResult에 대한) 실제로 어떤 결과가 얻어졌다 때문에)

당신이 바로 .ExecuteAsync(...)

을 사용하는 등 원래 오히려 캡처 이상 던진 예외를두고 정책을 통해 실행을 원하는 경우