Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un'eccezione è una condizione di errore, probabilmente non controllata dal programma, che impedisce al programma di proseguire il proprio percorso di esecuzione normale. Alcune operazioni, tra cui la creazione di oggetti, l'input/output dei file e le chiamate di funzione effettuate da altri moduli, sono tutte potenziali origini di eccezioni, anche quando il programma è in esecuzione correttamente. Quando è affidabile, il codice prevede e gestisce le eccezioni. Per rilevare gli errori logici, usare asserzioni anziché eccezioni (vedere Uso di asserzioni).
Tipi di eccezioni
Il compilatore Microsoft C++ (MSVC) supporta tre tipi di gestione delle eccezioni:
-
Per la maggior parte dei programmi C++, è consigliabile usare la gestione delle eccezioni C++. È indipendente dai tipi e garantisce che i distruttori di oggetti vengano richiamati durante la rimozione dello stack.
Gestione strutturata delle eccezioni
Windows fornisce il proprio meccanismo di eccezione, denominato gestione delle eccezioni strutturate (SEH). Non è consigliabile per la programmazione C++ o MFC. Usare SEH solo in programmi C non MFC.
-
Dalla versione 3.0, MFC usa eccezioni C++. Supporta ancora le macro di gestione delle eccezioni meno recenti, simili alle eccezioni C++. Per consigli sulla combinazione di macro MFC ed eccezioni C++, vedere Eccezioni: Uso di macro MFC ed eccezioni C++.
Usare un'opzione del compilatore /EH per specificare il modello di gestione delle eccezioni da usare in un progetto C++. La gestione delle eccezioni C++ standard (/EHsc) è l'impostazione predefinita nei nuovi progetti C++ in Visual Studio.
Non è consigliabile combinare i meccanismi di gestione delle eccezioni. Ad esempio, non usare eccezioni C++ con la gestione strutturata delle eccezioni. L'uso della gestione delle eccezioni C++ rende il codice più portabile e consente di gestire le eccezioni di qualsiasi tipo. Per altre informazioni sugli svantaggi della gestione strutturata delle eccezioni, vedere Gestione strutturata delle eccezioni.
In questa sezione
Procedure consigliate C++ moderne per le eccezioni e la gestione degli errori
Come interfacciarsi tra codice eccezionale e non eccezionale
Vedi anche
Informazioni di riferimento
sul linguaggio X64 per la gestione
delle eccezioni (C++/CLI e C++/CX)