async Task Behavior <TInstance> .Execute <T>(BehaviorContext <TInstance, T> context) { var behavior = new DataBehavior <TInstance, T>(_next); try { await _activity.Execute(context, behavior).ConfigureAwait(false); } catch (Exception exception) { await ExceptionTypeCache.Faulted(behavior, context, exception).ConfigureAwait(false); } }
async Task Behavior <TInstance> .Execute <T>(BehaviorContext <TInstance, T> context) { var behavior = new DataBehavior <TInstance, T>(_next); Exception activityException = null; try { await _activity.Execute(context, behavior); } catch (Exception exception) { activityException = exception; } // once we can await in catch we're golden if (activityException != null) { await ExceptionTypeCache.Faulted(behavior, context, activityException); } }
Task Behavior <TInstance> .Faulted <T, TException>(BehaviorExceptionContext <TInstance, T, TException> context) { var behavior = new DataBehavior <TInstance, T>(_next); return(_activity.Faulted(context, behavior)); }