Condividi tramite


Elaborazione delle eccezioni

Quando un programma viene eseguito, possono verificarsi una serie di condizioni anomale ed errori denominate "eccezioni". Queste includono esaurimento della memoria, errori di allocazione delle risorse e fallimenti nella ricerca dei file.

La libreria MFC (Microsoft Foundation Class) utilizza uno schema per la gestione delle eccezioni modellato in modo simile a quello proposto dal comitato ANSI standard per C++. Un gestore eccezioni deve essere installato prima di chiamare una funzione che può rilevare una situazione anomala. Se la funzione rileva una condizione anomala, viene generata un'eccezione e il controllo viene passato al gestore di eccezioni.

Diverse macro incluse nella libreria MFC (Microsoft Foundation Class) imposteranno i gestori di eccezioni. Una serie di altre funzioni globali consentono di generare eccezioni specifiche e terminare i programmi, se necessario. Queste macro e queste funzioni globali rientrano nelle categorie seguenti:

  • Macro di eccezioni, che sono la struttura del gestore di eccezioni.

  • Funzioni generatrici di eccezioni, che generano eccezioni di tipi specifici.

  • Funzioni di terminazione, che causano la terminazione del programma.

Per esempi e ulteriori dettagli, vedere l'articolo Eccezioni.

Macro di eccezioni

TRY

Designa un blocco di codice per l'elaborazione delle eccezioni.

CATCH

Designa un blocco di codice per intercettare un'eccezione dal blocco TRY precedente.

CATCH_ALL

Designa un blocco di codice per intercettare tutte le eccezioni dal blocco TRY precedente.

AND_CATCH

Designa un blocco di codice per intercettare ulteriori tipi di eccezioni dal blocco TRY precedente.

AND_CATCH_ALL

Designa un blocco di codice per il rilevamento di tutti gli ulteriori tipi di eccezione generati in un blocco PROVA precedente.

END_CATCH

Termina l'ultimo blocco di codice CATCH o AND_CATCH.

END_CATCH_ALL

Termina l'ultimo blocco di codice CATCH_ALL.

THROW

Genera un'eccezione specificata.

THROW_LAST

Invia l'eccezione attualmente gestita al successivo gestore esterno.

Funzioni che generano eccezioni

AfxThrowArchiveException

Genera un'eccezione di archiviazione.

AfxThrowFileException

Genera un'eccezione di file.

AfxThrowMemoryException

Genera un'eccezione di memoria.

AfxThrowNotSupportedException

Genera un'eccezione non supportata.

AfxThrowResourceException

Genera un'eccezione di Windows di risorsa non trovata.

AfxThrowUserException

Genera un'eccezione in un'azione di programma avviata dall'utente.

MFC offre due funzioni che generano eccezioni appositamente per le eccezioni OLE:

Funzioni di generazione di eccezioni OLE

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 database forniscono due classi di eccezioni, CDBException e CDaoException e delle funzioni globali per supportare i tipi di eccezioni:

Funzioni di generazione di eccezioni DAO

AfxThrowDAOException

Genera una CDaoException dal proprio codice.

AfxThrowDBException

Genera una CDBException dal proprio codice.

MFC offre la seguente funzione di terminazione:

Funzioni di terminazione

AfxAbort

Chiamata per interrompere un'applicazione quando si verifica un errore irreversibile.

Vedere anche

Riferimenti

Classe CException

Concetti

Macro e funzioni globali MFC