Возврат из исключения

Так как оператор catch не вызывается из программы, то после выполнения блока catch управление не передается обратно оператору программы, при выполнении которого возникло исключение. Выполнение программы продолжается с операторов, находящихся после блока catch.

С целью предотвращения этой ситуации возможно указание блока кода, который вызывается после выхода из блока try / catch, с помощью блока finally в конце последовательности try/ catch.

Конструкция try/catch с блоком finally

Синтаксис:

try {

// Блок кода, выполняющий мониторинг ошибок

}

catch (ExcepTypel exl) {

//1 Обработка исключения ExcepTypel

}

catch (ЕхсерТуре2 ех2) {

// 2 Обработка исключения ЕхсерТуре2 .

finally {

// Код блока finally.

1

Блок finally буцет вызываться независимо от того, появится исключение или нет, а также независимо от причин возникновения такового.

Зыков С. В. Введение в теорию программирования. Объектно-ориентированный подход

Генерация исключений

Исключения автоматически генерируются средой программирования. Однако исключение может быть и явно сгенерировано посредством оператора throw.

Оператор throw

Синтаксис:

throw exceptOb;

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

Наследование классов исключений

Можно создавать заказные исключения, выполняющие обработку ошибок в пользовательском коде. Генерация исключений не представляет принципиальных сложностей, для этого требуется всего лишь определить класс, наследуемый из класса Exception. В качестве общего правила следует руководствоваться тем, что определенные пользователем исключения наследуются из класса ApplicationException, так как они представляют собой иерархию зарезервированных исключений, связанных с приложениями. Наследуемые классы не нуждаются в фактической реализации в каком-либо виде, поскольку сам факт их существования в системе типов данных позволяет воспользоваться ими в качестве исключений.

Создаваемые пользователем классы исключений автоматически получают доступные для них свойства и методы, определенные в классе Exception.

Порядок выполнения работы

  • 1. Реализовать программу на языке C# в соответствии с вариантом исполнения.
  • 2. Графически проиллюстрировать место реализованного исключения в общей иерархии.

Варианты заданий

Реализовать обработку ошибок для лабораторной работы №9, при этом переопределив с помощью наследования событие:

  • 1. StackOverflowException
  • 2. ArrayTypeMismatchException
  • 3. DivideByZeroException
  • 4. IndexOutOfRangeException
  • 5. InvalidCastException
  • 6. OutOfMemoryException
  • 7. OvertlowException
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >