Использование нескольких catch-блоков
С try-блоком можно связать не один, а несколько catch-блоков.
Однако все catch- блоки должны перехватывать исключения различ- ного типа.
using System; class Demo
{
public static void Main()
{
// Здесь массив a длиннее массива b. int[] a = { 4, 8, 10, 32, 64, 128, 256, 512 };
int[] b = { 2, 0, 1, 4, 0, 8 };
for (int i = 0; i < a.Length; i++)
{
try
{
Console.WriteLine(a[i] + " / " + b[i] + " равно " + a[i] / b[i]);
}
catch (DivideByZeroException)
{
Console.WriteLine("Деление на ноль!");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Выход за границы массива."); return;
}
}
}
}
В общем случае catch-выражения проверяются в том порядке, в кото- ром они встречаются в программе.
Выполняется только инструкция, тип исключения которой совпадает со сгенерированным исключением. Все остальные catch-блоки игнориру- ются.
catch-блок, предназначенный для "глобального перехвата" должен быть последним в последовательности catch-блоков.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.