Verifica delle condizioni di errore
Le informazioni contenute in questo argomento sono valide per:
Edizione |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Solo nativo |
||||
Pro, Premium e Ultimate |
Solo nativo |
È possibile utilizzare asserzioni per rilevare eventuali condizioni di errore in un punto del codice in cui tutti gli errori dovrebbero essere stati gestiti. Nell'esempio che segue, una routine grafica restituisce un codice di errore oppure, in caso di esito positivo, il valore zero.
myErr = myGraphRoutine(a, b);
/* Code to handle errors and
reset myErr if successful */
ASSERT(!myErr); -- MFC version
_ASSERT(!myErr); -- CRT version
Se il codice di gestione degli errori funziona correttamente, l'errore dovrebbe essere gestito e myErr impostato nuovamente su zero prima di raggiungere l'asserzione. Se myErr presenta un altro valore, l'asserzione avrà esito negativo, il programma verrà interrotto e verrà visualizzata la finestra di dialogo Finestra di dialogo Asserzione non riuscita.
Le istruzioni di asserzione non sostituiscono tuttavia il codice di gestione degli errori. L'esempio che segue riporta un'istruzione di asserzione che può condurre a problemi nel codice della versione finale:
myErr = myGraphRoutine(a, b);
/* No Code to handle errors */
ASSERT(!myErr); // Don't do this!
_ASSERT(!myErr); // Don't do this, either!
Questo codice si basa sull'istruzione di asserzione per gestire la condizione di errore. Di conseguenza qualsiasi codice di errore restituito da myGraphRoutine risulterà non gestito nel codice della versione finale.