Quando un programma viene eseguito, può verificarsi un certo numero di condizioni anormali e gli errori, chiamati "eccezioni". Questi possono includere l'esaurimento di memoria, errori di allocazione delle risorse e fallimento per trovare i file.
Microsoft Foundation Class Library utilizza uno schema di gestione delle eccezioni che è modellato strettamente dopo quello proposto dal comitato standard ANSI per C++. Un gestore di eccezioni deve essere impostato prima chiamata a una funzione che può incontrare una situazione anormale. Se la funzione rileva una condizione anomala, genera un'eccezione e controllo viene passato al gestore eccezioni.
Diverse macro incluse con Microsoft Foundation Class Library istituirà gestori eccezioni. Un certo numero di altre funzioni globali consentono di generare eccezioni specializzate e terminare i programmi, se necessario. Queste macro e funzioni globali rientrano nelle seguenti categorie:
Per esempi e ulteriori dettagli, vedere l'articolo eccezioni nel manuale del programmatore di Visual C++.
| PROVARE | Designa un blocco di codice per l'elaborazione delle eccezioni. |
| CATTURE | Designa un blocco di codice per la cattura un'eccezione dal blocco TRY precedente. |
| CATCH_ALL | Designa un blocco di codice per la cattura di tutte le eccezioni dal blocco TRY precedente. |
| AND_CATCH | Designa un blocco di codice per la cattura di tipi di ulteriore eccezione dal blocco TRY precedente. |
| AND_CATCH_ALL | Designa un blocco di codice per la cattura di tutti gli altri tipi di ulteriore eccezione generati in un blocco TRY precedente. |
| END_CATCH | Si conclude l'ultimo blocco di codice cattura o AND_CATCH. |
| END_CATCH_ALL | Si conclude l'ultimo blocco di codice CATCH_ALL. |
| GETTARE | Genera un'eccezione specificata. |
| THROW_LAST | Genera l'eccezione attualmente gestita al successivo gestore esterno. |
Funzioni di generazione di eccezioni
| AfxThrowArchiveException | Genera un'eccezione di archivio. |
| AfxThrowFileException | Genera un'eccezione di file. |
| AfxThrowMemoryException | Genera un'eccezione di memoria. |
| AfxThrowNotSupportedException | Genera un'eccezione non supportata. |
| AfxThrowResourceException | Genera un'eccezione di Windows risorse non trovato. |
| AfxThrowUserException | Genera un'eccezione in un'azione del programma avviato dall'utente. |
MFC fornisce due funzioni di generazione di eccezioni specificatamente per le eccezioni di OLE:
OLE eccezione funzioni
| AfxThrowOleDispatchException | Genera un'eccezione all'interno di una funzione di automazione OLE. |
| AfxThrowOleException | Genera un'eccezione OLE. |
Per supportare le eccezioni di database, le classi di database forniscono due classi di eccezione, CDBException e CDaoExceptione funzioni globali per supportare i tipi di eccezione:
Funzioni di eccezione DAO
| AfxThrowDAOException | Getta un CDaoException dal proprio codice. |
| AfxThrowDBException | Getta un CDBException dal proprio codice. |
MFC fornisce la seguente funzione di terminazione:
| AfxAbort | Chiamato per terminare un'applicazione quando un errore irreversibile si verifica. |
Vedere a&nchenbsp;CException