Коли програма виконує, ненормальне умов і помилок, що називаються «винятки» може статися. Вони можуть містити працює пам'яті, помилок виділення ресурсів і нездатність знайти файли.
Бібліотеки класів Фонду Microsoft використовує схеми обробки виключень, яка є зразком тісно один запропонованих комітету стандартів ANSI для C++. Обробник потрібно настроїти перед виклик функції, які можуть виникнути ненормальним ситуації. Якщо функція виявляє ненормальним стані, він кидає виключення і керування передається обробника винятків.
Кілька макросів, що входить до складу Microsoft фонду бібліотеки клас буде створено обробку винятків. Ряд інші глобальні функції допомагають кинути спеціалізованих винятки та припинити дію програм, у разі потреби. Ці макроси та глобальні функції поділяються на такі категорії:
Приклади і більш докладної інформації, перегляньте статтю - Винятки в Visual C++ програміста керівництво.
| СПРОБУЙТЕ | Визначає фрагмент коду для обробки винятків. |
| УЛОВ | Визначає фрагмент коду для лову виключення з попереднього блоку СПРОБУВАТИ. |
| CATCH_ALL | Визначає фрагмент коду для лову всі винятки з попереднього СПРОБУВАТИ блок. |
| AND_CATCH | Визначає фрагмент коду для лову типи додаткових-винятку від попередніх СПРОБУВАТИ блоку. |
| AND_CATCH_ALL | Визначає фрагмент коду для лову всі інші додаткові-винятку типи кинули в попередньому СПРОБУВАТИ блокувати. |
| END_CATCH | Закінчується останній блок коду ЗЛОВИТИ або AND_CATCH. |
| END_CATCH_ALL | Закінчується останній блок коду CATCH_ALL. |
| КИНУТИ | Кидає вказаний виключення. |
| THROW_LAST | Кидає в даний час обробив виняток для наступного зовнішній обробника. |
| AfxThrowArchiveException | Кидає винятків архіву. |
| AfxThrowFileException | Кидає виключення файлів. |
| AfxThrowMemoryException | Кидає пам'яті-винятку. |
| AfxThrowNotSupportedException | Кидає не підтримується виключення. |
| AfxThrowResourceException | Кидає Windows ресурс не знайдено винятку. |
| AfxThrowUserException | Кидає виключення у дію програму, ініційований користувачем. |
MFC забезпечує дві функції кидали винятком спеціально для винятків OLE:
OLE виключення функцій
| AfxThrowOleDispatchException | Кидає виключення в рамках на функції автоматизації OLE. |
| AfxThrowOleException | Кидає OLE-винятку. |
Для підтримки винятки бази даних, бази даних класи надають два класи виняток, CDBException і CDaoExceptionі глобальні функції, підтримувати типи-винятку:
ДАО-винятку функцій
| AfxThrowDAOException | Кидає CDaoException з власного коду. |
| AfxThrowDBException | Кидає CDBException з власного коду. |
MFC забезпечує таку функцію припинення:
| AfxAbort | Називається припинити застосування, коли критична помилка виникає. |
Дивіться також CException