Я начинающий программист и недавно столкнулся с исключениями.Я провел этот небольшой тест ниже, и результат, который я получил, был не таким, как я ожидал.
static void Main(string[] args)
{
ushort var = 65535;
try
{
checked { var++; }
}
catch (OverflowException)
{
Console.WriteLine("Hello!");
throw;
}
catch
{
Console.WriteLine("Here I am!");
}
}
Я ожидал, что программа выполнит следующие действия:
- Попытка var ++, сбой и создание исключения OverflowException;
- Enter Catch (OverflowException) инапишите "Hello!";
- Бросьте исключение и введите catch;
- Напишите "Вот я!".
Однако я попал только на экран "Здравствуйте! ".
РЕДАКТИРОВАТЬ: Спасибо тем, кто прокомментировал.Я думаю, что начинаю понимать.Однако моя путаница возникла из-за этой книги, которую я читаю: C # 4.0.
Я мог бы показать текст, однако это на португальском языке.Я собираюсь перевести то, что там написано: «Иногда полезно распространить исключение через несколько уловов. Например, давайте добавим, что необходимо показать конкретное сообщение об ошибке из-за того, что« idade »недопустим, но нам все еще нужно закрыть программу, являющуюся этой частью в глобальном перехвате. В этом случае необходимо распространить исключение после выполнения первого блока перехвата. Для этого вам нужно всего лишь сделать простой бросокбез аргументов. "
Пример из книги
В этом примере книги вы можете увидеть, как программист делает то же самое, что и я.По крайней мере, это выглядит так.Я что-то пропустил?Или книга не так?
Надеюсь, вы мне поможете.Спасибо!