Assertions MFC
Cette rubrique s'applique à :
Édition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Natif uniquement |
||||
Pro, Premium et Ultimate |
Natif uniquement |
Les MFC définissent la macro ASSERT pour vérifier les assertions. Ils définissent également les macros MFC ASSERT_VALID et CObject::AssertValid pour vérifier l'état interne d'un objet dérivé de CObject.
La macro MFC ASSERT stoppe l'exécution du programme et avertit l'utilisateur si l'argument (une expression) prend la valeur zéro ou False. Si l'expression prend une valeur non-zéro, l'exécution se poursuit.
Lorsqu'une assertion échoue, une boîte de dialogue de message affiche le nom du fichier source et le numéro de ligne de l'assertion. Si vous choisissez Réessayer dans la boîte de dialogue, un appel à AfxDebugBreak provoque un arrêt de l'exécution pour le débogueur. À ce stade, vous pouvez examiner la pile des appels et les autres options de débogage pour déterminer la cause de l'échec de l'assertion. Si vous avez activé le débogage juste-à-temps, la boîte de dialogue peut lancer le débogueur s'il n'était pas en cours d'exécution lorsque l'échec de l'assertion a eu lieu.
L'exemple suivant montre comment utiliser ASSERT pour vérifier la valeur de retour d'une fonction :
int x = SomeFunc(y);
ASSERT(x >= 0); // Assertion fails if x is negative
Vous pouvez utiliser ASSERT avec la fonction IsKindOf pour vérifier les types des arguments d'une fonction :
ASSERT( pObject1->IsKindOf( RUNTIME_CLASS( CPerson ) ) );
La macro ASSERT intercepte uniquement les erreurs de programme dans la version Debug de votre programme. Elle ne crée aucun code dans la version Release. Si vous avez besoin d'évaluer l'expression dans la version Release, utilisez la macro VERIFY à la place de la macro ASSERT.