Elaborazione delle eccezioni

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++.

Eccezione macro

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:

Funzioni di terminazione

AfxAbort Chiamato per terminare un'applicazione quando un errore irreversibile si verifica.

Vedere a&nchenbsp;CException

Index