Partager via


Assertion et messages entrés par l'utilisateur (C++)

Prend en charge du langage C++ trois mécanismes de gestion des erreurs qui vous aident à déboguer votre application : directive de #error, le mot clé de static_assert , et le d' assert (CRT) .Les trois mécanismes publie des messages d'erreur, et deux testent également des assertions de logiciel.Une assertion logicielle spécifie une condition que celles que soit remplie à un point de votre programme.Si une assertion au moment de la compilation échoue, le compilateur émet un message de diagnostic et une erreur de compilation.Si une assertion au moment de l'exécution échoue, le système d'exploitation envoie un message de diagnostic et ferme votre application.

Notes

la durée de vie de votre application se compose d'un prétraitement, d'une compilation, et d'une phase au moment de l'exécution.Chaque mécanisme de gestion des erreurs accède aux informations de débogage disponibles pendant l'une de ces phases.Pour déboguer efficacement, sélectionnez le mécanisme qui fournit des informations pertinentes sur cette phase :

  • directive de #error est appliquée au temps de prétraitement.Elle non qualifiée émet un message spécifié par l'utilisateur et entraîne la compilation à l'échec avec une erreur.Le message peut contenir du texte qui est manipulé par les directives de préprocesseur mais aucune expression obtenue n'est évaluée.

  • La déclaration de static_assert est appliquée au moment de la compilation.Elle teste une assertion logicielle qui est représentée par une expression intégrale spécifiée par l'utilisateur qui peut être convertie en valeur booléenne.Si l'expression prend la valeur zéro (false), le compilateur émet le message spécifié par l'utilisateur et la compilation échoue avec une erreur.

    La déclaration d' static_assert est particulièrement utile pour le débogage des modèles parce que les arguments template peuvent être inclus dans l'expression spécifiée par l'utilisateur.

  • La macro d' assert (CRT) est appliquée au moment de l'exécution.Elle évalue une expression spécifiée par l'utilisateur, et si le résultat est zéro, le système génère un message de diagnostic et ferme votre application.De nombreux autres macros, telles que_ASSERT et _ASSERTE, ressemblent à cette macro mais envoient des messages de diagnostic définis par le système ou définis par l'utilisateur.

Voir aussi

Référence

directive de #error (C/C++)

assert (CRT)

_ASSERT ; _ASSERTE de macros

static_assert

Macro de _STATIC_ASSERT

Autres ressources

Modèles