Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 60 стр.

UptoLike

Составители: 

60
формального аргумента которого согласован с типом T - совпадает с
ним или является его потомком - захватывает исключение и начинает
выполняться.
Исключения могут генерироваться средой CLR, платформой .NET
Framework или внешними библиотеками, либо кодом приложения. Ис-
ключения создаются при помощи ключевого слова throw. Во многих
случаях исключение может инициироваться не методом, вызванным не-
посредственно кодом, а другим методом, расположенным ниже в стеке
последовательности вызовов. Когда это происходит, среда CLR выпол-
няет анализ последовательных вызовов методов в поиске метода с бло-
ком catch для определенного типа исключения. При обнаружении пер-
вого такого блока catch этот блок выполняется. Если среда CLR не на-
ходит соответствующего блока catch где-либо в стеке вызовов, она за-
вершает процесс и отображает пользователю сообщение.
В приведенном ниже примере метод тестирует деление на ноль и
выполняет перехват соответствующей ошибки. Без обработки исключе-
ний эта программа завершила бы работу с ошибкой “DivideByZeroEx-
ception was unhandled (не обработано исключение "деление на
ноль").
class ExceptionTest {
static double SafeDivision(double x, double y) {
if (y == 0)
throw new System.DivideByZeroException();
return x / y;
}
static void Main(){
double a = 98, b = 0;
double result = 0;
try {
result = SafeDivision(a, b);
Console.WriteLine("{0} divided by {1} = {2}",
a, b, result);
}
catch (DivideByZeroException e) {
Console.WriteLine("Attempted divide by zero.");
}
}}
3.5. Массивы
Массивом называют упорядоченную совокупность элементов од-
ного типа. Каждый элемент массива имеет индексы, определяющие по-
рядок элементов. Количество индексов характеризует размерность