
CException є базового класу на всі винятки в бібліотеки класів Microsoft фонду. Нижче наведено похідних класів та їх описи:
| CMemoryException | Пам'яті-винятку |
| CNotSupportedException | Запит про операцію |
| CArchiveException | Архів конкретних-винятку |
| CFileException | Конкретного файлу-винятку |
| CResourceException | Windows ресурс не знайдено, або не createable |
| COleException | OLE виняток |
| CDBException | Exceptio&nnbsp бази даних; (тобто виключення умови, що виникають для MFC бази даних класів на основі відкрити підключення до бази даних) |
| COleDispatchException | OLE: обробка (автоматизації)-винятку |
| CUserException | Винятком того, що вказує на те, що не вдалося знайти ресурс |
| CDaoException | Об'єкт-винятку (тобто виключення умови, пов'язаних для класу DAO), доступу до даних |
| CInternetException | Інтернет-винятку (тобто виключення умови, пов'язаних для Інтернет-класи). |
Ці винятки призначені для використання з КИНУТИ, THROW_LAST, СПРОБУЙТЕ, ЗЛОВИТИ, AND_CATCHі END_CATCH макроси. Щоб отримати додаткові відомості про винятки, побачити Обробки винятків, або статті - Винятки в Visual C++ програміста керівництво.
Ловити конкретних винятком, використовувати відповідні похідних класів. Зловити всіх типів винятки, використання CExceptionі диференціювати серед CExceptionза допомогою CObject::IsKindOf -отриманих класів. Зверніть увагу, що CObject::IsKindOf працює тільки для класів, заявив з IMPLEMENT_DYNAMIC макросів, для того, щоб скористатися динамічний текст перевірки. Будь-який CException-похідних класів, які ви створюєте повинні використовувати IMPLEMENT_DYNAMIC макрос,.
Ви можете повідомити про подробиці про винятки для користувача за телефоном GetErrorMessage або ReportError, два методи роботи з будь-яким CExceptionпохідних класів.
Якщо виняток спіймали на один з макроси, CException об'єкт буде видалено автоматично; не видалити його самостійно. Якщо є винятком спіймали за допомогою зловити ключове слово, він не буде автоматично видалено. У статті - Винятки в Visual C++ програміста керівництво для більше інформації про те, коли, щоб видалити об'єкт, exeption.
CException є абстрактних базового класу. Ви не можете створювати об'єкти CException ; Ви повинні створити об'єкти похідних класів. Якщо потрібно створити свій власний CException типу, скористайтеся одним із похідні класи, перераховані вище, як модель. Переконайтеся, що похідного класу також використовує IMPLEMENT_DYNAMIC.
# включити lt;afx.h>
|&Nbsp членів класу ; Базовий клас | Ієрархічна діаграма
Зразок РВАТИ зразків MFC
Дивіться також Обробка винятків