Составители:
Рубрика:
жете структурировать свою программу с помощью макрокоманд обработки
исключений. В этом случае необходимо начать с макрокоманды TRY,
кото-
рая устанавливает блок TRY,
отмечающий потенциально опасный фрагмент
программы.
Исключения, порожденные в блоке TRY,
обрабатываются в блоках
CATCH
и AND_CATCH. Допускается и рекурсивная обработка: исключения
могут быть переданы внешнему блоку TRY
путем их игнорирования или
в результате вызова макрокоманды THROW_LAST.
Все блоки CATCH
должны завершаться макрокомандой END_CATCH или
END_CATCH_ALL.
Если в программе нет блоков CATCH, блок TRY сам дол-
жен завершаться указанными макрокомандами.
Макрокоманды THROW
и THROW_LAST генерируют заданное исключе-
ние, прерывают выполнение программы и передают управление блоку
CATCH.
Если таковой отсутствует, управление передается модулю библиотеки
MFC, который отображает сообщение об ошибке и завершает свою работу.
Макрокоманда THROW_LAST
передает исключение назад внешнему блоку
CATCH.
MFC содержит группу классов, связанных с обработкой исключений, ко-
торые порождены от класса CException. Каждый из классов этой группы пред-
назначен для обработки определенных типов исключений (табл. 8.2).
Таблица 8.2
Класс Описание
CMemoryException Исключение, вызванное нехваткой памяти
CNotSupportedException Запрос недопустимой операции
CArchiveException Исключение при работе с архивами
CFileException Исключение при выполнении операций с файлами
CResourceException Ресурс не обнаружен или не может быть создан
COleException OLE-исключение
CDBException
Исключение, возникающее при выполнении операций
с базами данных; генерируется ODBC-классами библиотеки MFC
COleDispatchException Ошибка диспетчеризации (OLE-автоматизации)
CUserException
Исключение, связанное с невозможностью найти заданный
ресурс
CDaoException
Исключение, возникающее при работе с объектами доступа к
данным (Data Access Object, DAO); генерируется DАО-классами
библиотеки MFC
CInternetException
Исключение, связанное с работой в Internet; генерируется
Internet-классами библиотеки MFC
Эти исключения предназначены для использования в блоках try/catch
и макрокомандах TRY,
CATCH, AND__CATCH, THROW, THROW_LAST
и END_CATCH.
Обычно каждый производный класс служит для перехвата исключений
114
жете структурировать свою программу с помощью макрокоманд обработки
исключений. В этом случае необходимо начать с макрокоманды TRY, кото-
рая устанавливает блок TRY, отмечающий потенциально опасный фрагмент
программы.
Исключения, порожденные в блоке TRY, обрабатываются в блоках
CATCH и AND_CATCH. Допускается и рекурсивная обработка: исключения
могут быть переданы внешнему блоку TRY путем их игнорирования или
в результате вызова макрокоманды THROW_LAST.
Все блоки CATCH должны завершаться макрокомандой END_CATCH или
END_CATCH_ALL. Если в программе нет блоков CATCH, блок TRY сам дол-
жен завершаться указанными макрокомандами.
Макрокоманды THROW и THROW_LAST генерируют заданное исключе-
ние, прерывают выполнение программы и передают управление блоку
CATCH. Если таковой отсутствует, управление передается модулю библиотеки
MFC, который отображает сообщение об ошибке и завершает свою работу.
Макрокоманда THROW_LAST передает исключение назад внешнему блоку
CATCH.
MFC содержит группу классов, связанных с обработкой исключений, ко-
торые порождены от класса CException. Каждый из классов этой группы пред-
назначен для обработки определенных типов исключений (табл. 8.2).
Таблица 8.2
Класс Описание
CMemoryException Исключение, вызванное нехваткой памяти
CNotSupportedException Запрос недопустимой операции
CArchiveException Исключение при работе с архивами
CFileException Исключение при выполнении операций с файлами
CResourceException Ресурс не обнаружен или не может быть создан
COleException OLE-исключение
Исключение, возникающее при выполнении операций
CDBException
с базами данных; генерируется ODBC-классами библиотеки MFC
COleDispatchException Ошибка диспетчеризации (OLE-автоматизации)
Исключение, связанное с невозможностью найти заданный
CUserException
ресурс
Исключение, возникающее при работе с объектами доступа к
CDaoException данным (Data Access Object, DAO); генерируется DАО-классами
библиотеки MFC
Исключение, связанное с работой в Internet; генерируется
CInternetException
Internet-классами библиотеки MFC
Эти исключения предназначены для использования в блоках try/catch
и макрокомандах TRY, CATCH, AND__CATCH, THROW, THROW_LAST
и END_CATCH.
Обычно каждый производный класс служит для перехвата исключений
114
Страницы
- « первая
- ‹ предыдущая
- …
- 112
- 113
- 114
- 115
- 116
- …
- следующая ›
- последняя »
