<PackageReference Include="Polly" Version="8.5.2" />

FallbackPolicy<TResult>

public class FallbackPolicy<TResult> : Policy<TResult>, IFallbackPolicy<TResult>, IFallbackPolicy, IsPolicy
A fallback policy that can be applied to delegates returning a value of type TResult.
using System; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Threading; namespace Polly.Fallback { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public class FallbackPolicy<[System.Runtime.CompilerServices.Nullable(2)] TResult> : Policy<TResult>, IFallbackPolicy<TResult>, IFallbackPolicy, IsPolicy { private readonly Action<DelegateResult<TResult>, Context> _onFallback; private readonly Func<DelegateResult<TResult>, Context, CancellationToken, TResult> _fallbackAction; internal FallbackPolicy(PolicyBuilder<TResult> policyBuilder, Action<DelegateResult<TResult>, Context> onFallback, Func<DelegateResult<TResult>, Context, CancellationToken, TResult> fallbackAction) : base(policyBuilder) { if (onFallback == null) throw new ArgumentNullException("onFallback"); _onFallback = onFallback; if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); _fallbackAction = fallbackAction; } [DebuggerStepThrough] protected override TResult Implementation(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { if (action == null) throw new ArgumentNullException("action"); return FallbackEngine.Implementation<TResult>(action, context, base.ExceptionPredicates, base.ResultPredicates, _onFallback, _fallbackAction, cancellationToken); } } }