Gestione delle eccezioni in MSVC
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 (edizione Standard H). Non è consigliabile per la programmazione C++ o MFC. Usare edizione Standard H solo nei 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.
Contenuto della sezione
Procedure consigliate C++ moderne per le eccezioni e la gestione degli errori
Come interfacciarsi tra codice eccezionale e non eccezionale
Gestione strutturata delle eccezioni (edizione Standard H) (C/C++)
Vedi anche
Informazioni di riferimento
sul linguaggio X64 per la gestione
delle eccezioni (C++/CLI e C++/CX)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per