Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2016, 15:10   #1
Alex_7_Alex
Подтвердите свой е-майл
 
Регистрация: 02.03.2016
Сообщений: 10
По умолчанию Многоуровневый перехват исключений - C#

Помогите сделать, дали, ничего не объяснили, сказали сделать

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

Ну книжку почитай, она объяснит.

Вряд ли кто-то будет делать все полностью за вас видя что вы сами ничего не делаете. Надо было тогда хотя бы Александрой назваться и фотку из гугла на аватар поставить, и то не факт, что поможет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.03.2016, 15:47   #3
max_prorok
Форумчанин
 
Регистрация: 06.10.2011
Сообщений: 181
По умолчанию

Для пунктов 1-6:
Код:
Random rnd= new Random(); //генератор случайного числа
int notshort=Random.Next(32768, 2147483647); //присваиваем int значение большее чем short
short sh; //переменная типа short
try //открываем внешний обработчик try
 {
 try //открываем внутренний обработчик try
  {
  checked //включаем защиту от переполнения
   {
   sh= (short) notshort; //присваивание short значение переменной notshort
   }
  Console.WriteLine(sh.ToString()); //пытаемся вывести в консоль полученное значение
  }
 catch //начало внутреннего обработчика
  {
  Console.WriteLine("Сработал внутренний обработчик."); //выводим строку
  }
 }
catch //начало внешнего обработчика
 {
 Console.WriteLine("Сработал внешний обработчик."); //выводим строку
 }
Для последних двух пунктов код дополняется до следующего вида:
Код:
Random rnd= new Random(); //генератор случайного числа
int notshort=Random.Next(32768, 2147483647); //присваиваем int значение большее чем short
short sh; //переменная типа short
try //открываем внешний обработчик try
 {
 try //открываем внутренний обработчик try
  {
  checked //включаем защиту от переполнения
   {
   sh= (short) notshort; //присваивание short значение переменной notshort
   }
  Console.WriteLine(sh.ToString()); //пытаемся вывести в консоль полученное значение
  }
 catch //начало внутреннего обработчика
  {
  Console.WriteLine("Сработал внутренний обработчик."); //выводим строку
  throw; //передаем исключение внешнему обработчику
  }
 }
catch //начало внешнего обработчика
 {
 Console.WriteLine("Сработал внешний обработчик."); //выводим строку
 }
finally
 {
 sh=(short) notshort;
 Console.WriteLine(sh.ToString);
 }
P.S. Могут быть опечатки и какие-то неточности, проверять не на чем сейчас. Но смысл вроде как соблюден.
P.S.S. На работе делать пока нечего. Не могу с одной штукой в матлабе разобраться.

Последний раз редактировалось max_prorok; 09.03.2016 в 15:49. Причина: В поддержку Alex11223
max_prorok вне форума Ответить с цитированием
Старый 09.03.2016, 17:38   #4
Alex_7_Alex
Подтвердите свой е-майл
 
Регистрация: 02.03.2016
Сообщений: 10
По умолчанию

max_prorok, большое спасибо
Alex_7_Alex вне форума Ответить с цитированием
Старый 09.03.2016, 17:40   #5
max_prorok
Форумчанин
 
Регистрация: 06.10.2011
Сообщений: 181
По умолчанию

Цитата:
Сообщение от Alex_7_Alex Посмотреть сообщение
max_prorok, большое спасибо
Помогло хоть? Заработало?
max_prorok вне форума Ответить с цитированием
Старый 09.03.2016, 17:44   #6
Alex_7_Alex
Подтвердите свой е-майл
 
Регистрация: 02.03.2016
Сообщений: 10
По умолчанию

Да, еще раз спасибо
Alex_7_Alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой перехват исключений Alex_7_Alex C# (си шарп) 1 07.03.2016 18:30
Многоуровневый полиморфизм RAFA91 Общие вопросы C/C++ 43 06.08.2015 12:34
Многоуровневый if/else Bender1000 JavaScript, Ajax 9 04.12.2014 15:48
повторный перехват исключений в c# Dissembler7 Помощь студентам 0 18.06.2013 18:54
Обработка исключений с пoмощью структурированной обработки исключений Smart Visual C++ 3 01.11.2012 15:38