Обработка и отмена пользовательского исключения. Путаница с броском и ловить может быть .....? - PullRequest
0 голосов
/ 14 февраля 2020

создал класс, в котором я пытаюсь проверить пользовательское исключение, которое я создал в другом классе. Положение исключения броска отличается в двух форматах кода. я хочу знать, в чем разница и проблема между двумя условиями, которые здесь разрабатываются *

namespace ConsoleApp5
{
   class Program
   {
   static int newdivision(int a, int b)
      {
      if (a % 2 == 0)
         {
         throw new Myfirstuserdefinedexception();

выполнение заканчивается здесь с необработанным исключением типа Myfirstuserdefinedexception, показанным в консоли

         }
      int c = 1;
      try
         {

здесь когда я раскомментирую нижеприведенные 4 строки и комментирую тот же фрагмент кода, приведенного выше, он не показывает никакой необработанной ошибки исключения

         //if (a % 2 == 0)
         //{
         //throw new Myfirstuserdefinedexception();
         //}
         c = a / b;
         return c;
         }
     catch
         {
            return 0;
         }
      }
      static void Main(string[] args)
      {            
         Console.WriteLine(newdivision(25,5));
         Console.WriteLine(newdivision(40, 2));
      }
   }
}

Это определенный пользователем класс исключения, который я создал. Он ничего не делает, а просто печатает текст

namespace ConsoleApp5
{
public class Myfirstuserdefinedexception : Exception   
{
public Myfirstuserdefinedexception()
{
Console.WriteLine("user defined exception is handled");
}
public Myfirstuserdefinedexception(string this_is_another_i_dont_know_what_program):base(this_is_another_i_dont_know_what_program) { }
}
}
...