Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

27. Перехват исключений.

Основу обработки исключительных ситуаций в С# составляет пара ключевых слов

try и catch. Эти ключевые слова действуют совместно и не могут быть использованы

порознь. Пример:

try{

// Блок кода, проверяемый на наличие ошибок.

}

catch {ExcepTypelexOb) {

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

}

catch {ExcepType2 exOb) {

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

}

где ЕхсерТуре — это тип возникающей исключительной ситуации. Когда исключение генерируется оператором try, оно перехватывается составляющим ему пару оператором catch, который затем обрабатывает это исключение. В зависимости от типа исключения выполняется и соответствующий оператор catch. Так, если типы генерируемого исключения и того, что указывается в операторе catch, совпадают, то выполняется именно этот оператор, а все остальные пропускаются. Когда исключение перехватывается, переменная исключения exOb получает свое значение.

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

28. Бросание исключений.

Инструкция throw сродни return, она немедленно завершает метод, но возвращает не вычисленное методом значение, а объект исключения.

Исключением называется объект особого класса, который содержит всю информацию о возникшей исключительной ситуации: тип ситуации, последовательность вызовов методов, которая привела к исключению (стек вызовов), словесное описание ситуации.

Предположим, методу поиска в массиве передали вместо массива null. Метод не должен открывать окно с сообщением об этом. Метод не должен выводить сообщение на консоль. Метод не должен вообще ничего никуда писать. Метод должен немедленно завершить выполнение при помощи инструкции throw - выбросить исключение.

Если вызванный метод завершился инструкцией throw, то исключение передается в вызывающий метод и тот ведет себя так, как будто инструкция throw сработала в нем. Из него исключение передается в метод, который вызвал его и т.д. до самого метода Main().

29. Определение массива. Объявление, инициализация.

Массив представляет собой совокупность переменных одного типа с общим для обращения к ним именем. ВС# массивы могут быть как одномерными, так и многомерными, хотя чаще всего применяются одномерные массивы. Массивы служат самым разным целям, поскольку они предоставляют удобные средства для объединения связанных вместе переменных. Главное преимущество массива — в организации данных таким образом, чтобы ими было проще манипулировать. Одномерный массив представляет собой список связанных переменных. Для того чтобы воспользоваться массивом в программе, требуется двухэтапная процедура, поскольку в С# массивы реализованы в виде объектов. Во-первых, необходимо объявить переменную, которая может обращаться к массиву. И во-вторых, нужно создать экземпляр массива, используя оператор new. Так, для объявления одномерного массива обычно применяется следующая общая форма:

тип[] имя_массива = new тип[размер] ;

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

Массивы могут инициализироваться, когда они создаются. Ниже приведена общая форма инициализации одномерного массива:

тип[] имя_массива = {vail, val2, val3, ..., valN} ;

где vall-va IN обозначают первоначальные значения, которые присваиваются по очереди, слева направо и по порядку индексирования. Для хранения инициализаторов массива в С# автоматически распределяется достаточный объем памяти. А необходимость пользоваться оператором new явным образом отпадает сама собой.

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

Простейшей формой многомерного массива является двумерный массив. Местоположение любого элемента в двумерном массиве обозначается двумя индексами. Такой массив можно представить в виде таблицы, на строки которой указывает один индекс, а на столбцы — другой. В следующей строке кода объявляется двумерный массив integer размерами 10x20.

int[,] table = newint[10, 20];