Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Генерирование вторичных исключений

Генерирование вторичных исключений

Вы должны знать, что в рамках логики try имеется возможность генерировать исключение для вызывающей стороны, находящейся выше по цепочке вызовов в стеке вызовов. Для этого просто используйте ключевое слово throw в рамках блока сatch. Тем самым исключение будет направлено выше по цепочке логики вызовов, что может быть полезно тогда, когда данный блок catch не имеет возможности полностью обработать возникшую ошибку.

// Перекладывание ответственности.
static void Main (string[] args) {
 …
 try {
  // Логика ускорения автомобиля… }
  catch(CarIsDeadException e) {
   // Частичная обработка ошибки и перенаправление.
   // Здесь перенаправляется входной объект CarIsDeadException.
   // Но можно генерировать и другое исключение.
   throw e;
 }
 …
}

Вы должны понимать, что в данном примере программного кода конечным получателем CarIsDeadException является среда CLR, поскольку здесь вторичное исключение генерируется методом Main(). Поэтому вашему конечному пользователю будет представлено системное диалоговое окно с информацией об ошибке. Как правило, вторично сгенерированное и частично обработанное исключение предъявляется вызывающей стороне, которая имеет возможность обработать его более "грациозно".

Оглавление книги


Генерация: 1.671. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз