Пример #1
0
 public override async Task HandleExceptionAsync(Func <CancellationToken, Task> action, CancellationToken actionCancellationToken = default(CancellationToken), Func <CancellationToken, Task> onExceptionCompensatingHandler = null, CancellationToken onExceptionCompensatingHandlerCancellationToken = default(CancellationToken))
 {
     try
     {
         await action(actionCancellationToken);
     }
     catch (Exception ex)
     {
         ExceptionHandlingUtility.WrapActionWithExceptionHandling(async() =>
         {
             if (CheckIfExceptionsNeedsToBePollyHandled(ex))
             {
                 PolicyWrap policyWrap = GetPolicyWrapWithProperFallbackActionSetForFallbackPoliciesAsync(ex, onExceptionCompensatingHandler);
                 await policyWrap.ExecuteAsync(action, actionCancellationToken);
             }
         }, _logger);
         await HandleExceptionWithThrowCondition(ex, onExceptionCompensatingHandler, onExceptionCompensatingHandlerCancellationToken);
     }
 }
 public override async Task HandleExceptionAsync(Func <CancellationToken, Task> action, CancellationToken actionCancellationToken = default(CancellationToken), Func <CancellationToken, Task> onExceptionCompensatingHandler = null, CancellationToken onExceptionCompensatingHandlerCancellationToken = default(CancellationToken))
 {
     try
     {
         await action(actionCancellationToken);
     }
     catch (Exception ex)
     {
         ExceptionHandlingUtility.WrapActionWithExceptionHandling(async() =>
         {
             if (_splittedTransientFailureExceptions.IsNotNullOrEmpty() && _splittedTransientFailureExceptions.Contains(ex.GetType().Name) && _policies.IsNotNullOrEmpty())
             {
                 PolicyWrap policyWrap = GetPolicyWrapWithProperFallbackActionSetForFallbackPoliciesAsync(ex, onExceptionCompensatingHandler);
                 await policyWrap.ExecuteAsync(action, actionCancellationToken);
             }
         }, _logger);
         await HandleExceptionWithThrowCondition(ex, onExceptionCompensatingHandler, onExceptionCompensatingHandlerCancellationToken);
     }
 }
Пример #3
0
 public override void HandleException(Action action, Action onExceptionCompensatingHandler = null)
 {
     try
     {
         action();
     }
     catch (Exception ex)
     {
         ExceptionHandlingUtility.WrapActionWithExceptionHandling(() =>
         {
             if (CheckIfExceptionsNeedsToBePollyHandled(ex))
             {
                 PolicyWrap policyWrap = GetPolicyWrapWithProperFallbackActionSetForFallbackPolicies(ex, onExceptionCompensatingHandler);
                 policyWrap.Execute(action);
             }
         }, _logger);
         HandleExceptionWithThrowCondition(ex, onExceptionCompensatingHandler);
     }
 }
 public override void HandleException(Action action, Action onExceptionCompensatingHandler = null)
 {
     try
     {
         action();
     }
     catch (Exception ex)
     {
         ExceptionHandlingUtility.WrapActionWithExceptionHandling(() =>
         {
             if (_splittedTransientFailureExceptions.IsNotNullOrEmpty() && _splittedTransientFailureExceptions.Contains(ex.GetType().Name) && _policies.IsNotNullOrEmpty())
             {
                 PolicyWrap policyWrap = GetPolicyWrapWithProperFallbackActionSetForFallbackPolicies(ex, onExceptionCompensatingHandler);
                 policyWrap.Execute(action);
             }
         }, _logger);
         HandleExceptionWithThrowCondition(ex, onExceptionCompensatingHandler);
     }
 }