コード例 #1
0
 static void Main()
 {
     try {
         Rethrow.GenException();
     }
     catch (IndexOutOfRangeException)
     {
         // recatch exception
         Console.WriteLine("Fatal error -- " + "program terminated.");
     }
 }
コード例 #2
0
        static void Main(string[] args)
        {
            //Завдання: Продемонструйте в коді:
            //1.Приклади виникнення та перехоплення exception (+)
            //2.Використання сatch без параметрів (+)
            //3.Повторну генерація exception  в блоці catch та спосіб розкрутки стеку(отримати
            //початкову точку виникнення виключення після повторної генерації виключення) (+)
            //4.Створіть свій клас для генерації exception та використайте його в коді. (+)
            //5.Додатково: Наведіть в коді приклади генерації наступних виключень(використовувати throw
            //заборонено, виключення повинно генеруватись CLR автоматично):
            //	5.1.NullReferenceException ()
            //	5.2.ArgumentNullException ()
            //	5.3.InvalidOperationException ()


            int x_1 = 1, y_1 = 0, z_1;            //1-st task
            int x_2 = 1, y_2 = 0, z_2;            //2-nd task

            //1
            try
            {
                z_1 = x_1 / y_1;
            }
            catch (DivideByZeroException ex)
            {
                Console.WriteLine("Zero division, result = 0");
                z_1 = 0;
            }
            Console.WriteLine("z = " + z_1);


            //2
            try
            {
                z_2 = x_2 / y_2;
            }
            catch (Exception)
            {
                Console.WriteLine("Zero division, result = 0");
            }
            catch
            {
                Console.WriteLine("Alone old catch block");
            }


            //3
            try
            {
                Rethrow.GenException();
            }
            catch (IndexOutOfRangeException)
            {
                // перехватить исключение повторно
                Console.WriteLine("Fatal error - programm is interrupted.");
            }


            //4
            try
            {
                throw new CustomHandmadeException("Hello World");
            }
            catch (CustomHandmadeException expectedExc)
            {
                Console.WriteLine("What did you expect?");
                expectedExc.Cure();
            }



            Console.ReadKey();
        }