Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Генерирование вторичных исключений
Генерирование вторичных исключений
Вы должны знать, что в рамках логики try имеется возможность генерировать исключение для вызывающей стороны, находящейся выше по цепочке вызовов в стеке вызовов. Для этого просто используйте ключевое слово throw в рамках блока сatch. Тем самым исключение будет направлено выше по цепочке логики вызовов, что может быть полезно тогда, когда данный блок catch не имеет возможности полностью обработать возникшую ошибку.
// Перекладывание ответственности.
static void Main (string[] args) {
…
try {
// Логика ускорения автомобиля… }
catch(CarIsDeadException e) {
// Частичная обработка ошибки и перенаправление.
// Здесь перенаправляется входной объект CarIsDeadException.
// Но можно генерировать и другое исключение.
throw e;
}
…
}
Вы должны понимать, что в данном примере программного кода конечным получателем CarIsDeadException является среда CLR, поскольку здесь вторичное исключение генерируется методом Main(). Поэтому вашему конечному пользователю будет представлено системное диалоговое окно с информацией об ошибке. Как правило, вторично сгенерированное и частично обработанное исключение предъявляется вызывающей стороне, которая имеет возможность обработать его более "грациозно".
- Обработка множеств исключений
- Генерирование исключений
- ГЛАВА 4 Обработка исключений
- ГЛАВА 6. Структурированная обработка исключений
- Исключения и обработчики исключений
- Векторная обработка исключений
- Последний глобальный шанс для обработки исключений
- Обработка исключений
- Генерирование события оплаты
- Отладка необработанных исключений в Visual Studio 2005
- Атомы обработки исключений в .NET
- Коды исключений