Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSBasicCourse2ndedPodbelsky / CSBasicCourse2ndedPodbelsky.rtf
Скачиваний:
27
Добавлен:
22.03.2016
Размер:
11.9 Mб
Скачать

16.7. Пользовательские классы исключений

В предыдущих программах при генерации исключений был использован

системный тип Exception. Кроме него в среде .NET имеется большое количество

специализированных классов исключений. Часто этих системных исключений

вполне достаточно для реакции на те события, которые могут произойти в вашей

программе. Однако программист-пользователь может определять собственные

классы исключений "собственные классы исключений" . Их можно создавать либо

на

базе

класса

Exception,

либо

используя

в

качестве

базовых

более

специализированные системные классы исключений.

В стандартной библиотеке определены два класса исключений, каждый из

которых является прямым наследником класса System.Exception

"класс:

System.Exception" . Класс System.SystemException "класс: System.SystemException"

соответствует исключениям, порождаемым средой, в которой выполняется

прикладная программа. Класс System.ApplicationException предназначен для

создания объектов-исключений, относящихся к выполнению прикладных программ.

Создавая собственные классы исключений, стандарт языка C# рекомендует делать

их наследниками класса System.ApplicationException, а не класса System.Exception.

Определяя собственный класс исключений, рекомендуется объявить в этом

классе три конструктора: конструктор умолчания, конструктор с параметрами типа

string и конструктор с параметрами string и Exception. В каждом из этих

конструкторов нужно вызвать конструкторы базового класса. В конструкторе

умолчания при обращении к базовому конструктору ему передаётся текст

сообщения, уникального для собственного класса исключений. В конструкторе с

параметром типа string базовому конструктору передаётся сообщение об ошибке. В

третьем конструкторе базовому конструктору передаётся сообщение об ошибке и

объект внутреннего исключения.

Контрольные вопросы

Что такое исключение?

В чём различия синхронных и асинхронных ситуаций?

Для обработки каких ситуаций применяется механизм исключений?

Назовите классы системных исключений.

Объясните назначение try-блока и приведите его форматы

.

Перечислите форматы обработчиков (ловушек) исключений.

Когда выполняется блок завершения обработки исключений?

Какими средствами могут обрабатываться ошибки времени исполнения программ

В чем отличие исключения от прерывания?

Какими средствами поддерживается перехват исключений?

Что происходит в случае, если исключение не перехвачено?

Какими средствами могут обрабатываться ошибки времени исполнения программ?

Каким образом можно перехватывать все исключения?

Каким образом можно перехватить конкретное исключение

Почему возникает необходимость в генерировании исключений самой программой?

Может ли исключение генерироваться повторно, после того, как оно было

перехвачено?

Каким образом отображается трассировка событий, предшествовавших

возникновению исключения?

В каком случае обработка исключения может прекратить выполнение программы?

Назовите свойства класса System.Exception, которые полезны при обработке

исключений.

Как применять исключения для управления программой?

Объясните назначение и возможности операции checked.

Перечислите конструкторы класса Exception.

Объясните правила применения двух форм оператора throw.

Соседние файлы в папке CSBasicCourse2ndedPodbelsky