示例#1
0
        public async Task HandleAsync(DbSms sms, CancellationToken token = default)
        {
            try
            {
                await _current.HandleAsync(sms, token);

                if (_successor != null)
                {
                    await _successor.HandleAsync(sms, token);
                }
            }
            catch (Exception e)
            {
                if (_fallback == null)
                {
                    _logger.Error(e, "Handler failed with exception. No fallback scenario.");
                    throw;
                }

                _logger.Warning(e, "Handler failed with exception. Fallback scenario start.");
                await _fallback.HandleAsync(sms, token);
            }
        }