Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Обработка исключительных ситуаций. Оператор try. Примеры использования.




Цикл перебора foreach используется для просмотра всех объектов из некоторой группы данных – коллекции. В языке С# определен ряд типов коллекций, например, коллекцией являются массивы.

Синтаксис записи цикла foreach:

foreach (тип имя_переменной in имя коллекции) выражение;

где тип и имя_переменной задают тип и имя итерационной переменной, которая в процессе итераций цикла foreach получает значения элементов коллекции, заданной своим именем.

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

В С# исключения представляются классами. Все классы исключений должны быть выведены из встроенного класса исключений Exception, который является частью пространства имен System. Таким образом, все исключения – подклассы класса Exception. Класс Exception имеет два производных класса SystemException и ApplicationException, поддерживающие две общие категории исключений:

- исключения, которые генерируются общей системой поддержки времени выполнения С#;

- исключения, которые генерируются прикладными программами С#.

В обработке исключений используются несколько ключевых слов языка: try, саtch, finallу, throw, использование которых взаимосвязано. Так например ключевые слова саtch, finallу нельзя использовать без ключевого слова try.

Программные инструкции, которые нужно проконтролировать на предмет исключений, помещаются в try -блок. Оператор try содержит три части:

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

- один или несколько обработчиков исключений – блоков саtch, в которых описывается, как обрабатываются ошибки различных типов;

- блок завершения finallу выполняется независимо от того, возникла ошибка в контролируемом блоке или нет.

Рассмотрим, каким образом реализуется обработка исключительных ситуаций.

- Обработка исключения начинается с появления ошибки. Функция или операция, в которой возникла ошибка, генерирует исключение. Часто оно генерируется в функциях, вложенных в блок try.

- Выброшенное исключение может быть перехвачено программным путем с помощью catch -блока и обработано соответствующим образом.

- Если обработчик не найден, вызывается стандартный обработчик исключения. Его действия зависят от конфигурации среды. Обычно он выводит на экран окно с информацией об исключении и завершает текущий процесс. Системные исключения автоматически генерируются С# -системой динамического управления.

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

- Любой код, который должен быть обязательно выполнен при выходе из try -блока, помещается в блок finally.

Отсутствовать могут либо блоки саtch, либо блок finallу, но не оба одновременно.

Итак, ядром обработки исключений являются блоки try и catch. Эти ключевые слова работают «в одной связке»; формат записи try/catch -блоков обработки исключений имеет следующий вид:

try {

// Блок кода, подлежащий проверке на наличие ошибок.

}

catch (Тип искл1 объект искл) {

// Обработчик для исключения Тип искл1

}

catch (Тип искл21 объект искл) {

// Обработчик для исключения Тип искл2

}

Здесь Тип искл – это тип сгенерированного исключения. После «выброса» исключение перехватывается соответствующей инструкцией catch, которая его обрабатывает. Как видно из формата записи try/catch- блоков, с try -блоком может быть связана не одна, а несколько catch -инструкций. Их последовательность должна располагаться непосредственно за блоком try. Блоки саtch просматриваются в том порядке, в котором они записаны. Какой именно из них будет выполнен, определит тип исключения. Другими словами, будет выполнена та catch -инструкция, тип исключения которой совпадает с типом сгенерированного исключения (а все остальные будут проигнорированы). После перехвата исключения параметр объект искл, если он присутствует,примет значение Тип искл.

Если обработчику исключения не нужен доступ к объекту исключения, то параметр объект искл можно опустить. Если исключение не генерируется, то try -блок завершается нормально, и все его catch -инструкции игнорируются.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных