makarychev13
@makarychev13
.NET-developer

Как обработать ошибки в трёх вложенных циклах?

Есть примерно такой код:
foreach (var item in _urlToFies)
{
      var newOrders = await _freelanceService.GetNewOrdersAsync(item.Key, item.Value);
      foreach (var order in newOrders)
      {
         var keywords = order.GetKeywords();
         var usersForSend = await _queryProcessor.ProcessAsync<GetUsersForSendOrdersQuery, IEnumerable<UserEntity>>(new GetUsersForSendOrdersQuery(keywords, ""));
         foreach (var user in usersForSend)
         {
            var senders = _sendersFactory.CreateSenders(user);
            foreach (var sender in senders)
            {
                await sender.SendAsync(user, order);
            }
          }
       }
}


Тут 3 вложенных цикла. Внутри каждого мне по идее нужно использвоать try-catch. Но тогда получается примерно такая портянка - ссылка на гист. Читать её довольно сложно. Но как иначе? Думал использовать монады (Either и пр.). Код становится намного приятнее, но тогда теряется единообразность проекта, ибо в каких-то местах у меня монады, а в каких-то - обычные ошибки.

Как быть?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
и?
разбейте на 3 логических уровня и разнесите в 3 метода
все сразу станет кошерно

ps или censored сделате один try-catch, но анализируйте exception .. вариантов вообще то море
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы