.NET 4.x Как вынести в отдельный класс блок try . catch - C#

Узнай цену своей работы

Формулировка задачи:

Проблема следующая: на сервере есть много сервисов. Моя задача - перехватывать и обрабатывать ошибки этих сервисов. Обработка ошибок планируется на клиенте. Но чтобы они туда пришли, необходим блок try ... catch. Сервисов у меня примерно 20, в каждом по две функции. Можно ли избежать повторения блока try ... catch. Например, вынести каким-то образов все функции в один статический класс, реализовать try ... catch там и передавать туда функции в качестве делегата. Или ещё каким-то образом. Благодарю за помощь

Решение задачи: «.NET 4.x Как вынести в отдельный класс блок try . catch»

textual
Листинг программы
  1.         private delegate void Update();
  2.  
  3.         public static void Main(string[] args)
  4.         {
  5.             Update Up = Upd1;
  6.             Up += Upd2;
  7.             Up += Upd3;
  8.             Up += Upd4;
  9.             Up += Upd5;
  10.             Up += Upd6;
  11.  
  12.  
  13.             foreach (Delegate meth in Up.GetInvocationList())
  14.             {
  15.                 try
  16.                 {
  17.                     meth.DynamicInvoke();
  18.                 }
  19.                 catch (Exception e)
  20.                 {
  21.                     Console.WriteLine(e.Message);
  22.                 }
  23.             }
  24.         }
  25.  
  26.         private static void Upd1()
  27.         {
  28.             Console.WriteLine("#1");
  29.         }
  30.  
  31.         private static void Upd2()
  32.         {
  33.             Console.WriteLine("#2");
  34.             throw new ArgumentNullException();
  35.         }
  36.  
  37.         private static void Upd3()
  38.         {
  39.             Console.WriteLine("#3");
  40.         }
  41.  
  42.         private static void Upd4()
  43.         {
  44.             Console.WriteLine("#4");
  45.         }
  46.  
  47.         private static void Upd5()
  48.         {
  49.             Console.WriteLine("#5");
  50.             throw new ArgumentException();
  51.         }
  52.  
  53.         private static void Upd6()
  54.         {
  55.             Console.WriteLine("#6");
  56.             throw new ArgumentOutOfRangeException();
  57.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы