Повторное генерирование исключений
Исключение, перехваченное одной 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;
}
}
}
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.