C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать

 98 - Как используются исключения в VC и MFC / MFC шаг за шагом / Visual C++

Шаг 98 - Как используются исключения в VC и MFC

Есть два механизма исключений.

  • Исключения, как операторы С++.
  • Макросы исключений
Макросы исключений считаются устаревшими, для всех новых программ рекомендуют использовать только операторы C++. Правда для того, чтобы в Вашей программе использовались исключения необходимо их разрешить в меню Project Setting в разделе C/C++ должен быть установлен флаг Enable exception handing.

step98.gif (5623 b)

Для обработки исключений MFC используется класс CException или классы поражденные от него. Для обработки исключительных ситуаций в MFC есть свои классы

CMemoryException		недостаточно памяти
CFileException			ошибка работы с файлами
CArhiveException		ошибка записи или востановления обьекта
CNotSupportedException		ошибка неизвестного устройства
CResourceException		ошибка работы с ресурсами
CDaoException			ошибка работы с базами данных
CDBException			ошибка рабюоты с базами данных
COleException			ошибка работы с обьектами OLE
COleDispatchException		ошибка работы с серверами автоматизации
CUserException			исключение с окном сообщения
К сожалению во всем этом есть неприятность. Механизмы работы исключений MFC не работают со структурированными обработчиками исключений SEH для NT. Следует отметить, что объекты MFC порождают исключения только производные от класса CException. Вот пример отлавливания исключения по нехватке памяти.
try
{
 // здесь мы эту память......
 // короче на лево и направо раздаем
}
catch(CMemoryException)
{
 // а вот здесь мы напишем
 // что будет делать потом
 // когда она закончится
}

| |
Автор Каев Артем.
[AD]