Повторное генерирование исключений

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002137.docx

Повторное генерирование исключений

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

Самая распространенная причина для повторного генерирования ис- ключения — позволить нескольким обработчикам получить доступ к ис- ключению.

 

Чтобы повторно сгенерировать исключение, достаточно использовать ключевое слово throw, не указывая исключения.

 

Пример.

using System;

 

class Class1

{

public static void genException()

{

int[ ] a = { 4, 8, 16, 32, 64, 128, 256, 512 };

int[ ] b = { 2, 0, 4, 4, 0,    8 };

 

for (int i = 0; i < a.Length; i++)

{

try

{

Console.WriteLine(a[i] + " * " + b[i] + "=" + a[i]*b[i]);

}

catch (IndexOutOfRangeException)

{

Console.WriteLine("Массивы имеют разную длину."); throw;     // Генерируем исключение повторно.

}

}

}

}

 

class Demo

{

public static void Main()

{

try

{


Class1.genException();

}

catch (IndexOutOfRangeException)

{

// Перехватываем повторно сгенерированное исключение. Console.WriteLine ("Неисправимая ошибка. "

+ "Программа завершена.");

return;

}

}

}