Многоуровневый перехват исключений - C#

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

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

1) Создать генератор псевдо случайных целых чисел в диапазоне находящемся за пределами допустимых значений для типа данных short. 2) Сгенерировать одно псевдослучайное значение и поместить в переменную типа int. 3) Открыть подряд два блока перехвата исключений try. Внутри блока, реализовать присвоение переменной типа short значение целочисленной переменной из предыдущего задания при помощи приведения. Для присвоения включить защиту от переполнения. Результат вывести на экран. Закрыть операторную скобку для одного блока try. 4) Закрытый блок будем далее считать внутренним обработчиком исключений и для него реализовать перехват исключительной ситуации – переполнение. При перехвате вывести на экран “Сработал внутренний обработчик”. Закрыть операторную скобку для второго блока try (его будем считать внешним обработчиком). 5) Для внешнего обработчика реализовать перехват всех исключительных ситуаций. При перехвате вывести на экран “Сработал внешний обработчик”. 6) Запустить программу. Убедиться в том, что осуществляется перехват только внутренним обработчиком. Осуществить передачу исключения внешнему обработчику при помощи throw. 7) В блоке finally внешнего обработчика осуществить присвоение переменной типа short значение целочисленной переменной с псевдослучайным значением при помощи приведения. Для присвоения не включать защиту от переполнения. Результат вывести на консоль.

Решение задачи: «Многоуровневый перехват исключений»

textual
Листинг программы
 Random rnd = new Random(); //генератор случайного числа
            int notshort = rnd.Next(32768, 2147483647); //присваиваем int значение большее чем short
            short sh; //переменная типа short
            try //открываем внешний обработчик try
            {
                try //открываем внутренний обработчик try
                {
                    checked //включаем защиту от переполнения
                    {
                        sh = (short)notshort; //присваивание short значение переменной notshort
                    }
                    Console.WriteLine(sh); //пытаемся вывести в консоль полученное значение
                }
                catch //начало внутреннего обработчика
                {
                    Console.WriteLine("Сработал внутренний обработчик."); //выводим строку
                    throw; //передаем исключение внешнему обработчику
                }
            }
            catch //начало внешнего обработчика
            {
                Console.WriteLine("Сработал внешний обработчик."); //выводим строку
            }
            finally
            {
                sh = (short)notshort;
                Console.WriteLine(sh);
            }
            Console.ReadLine();

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы