Condividi tramite


Asserzione e messaggi Forniti da (C++)

I supporti linguistici C++ tre meccanismi di gestione degli errori che consentono di eseguire il debug dell'applicazione: direttiva di #error, static_assert parola chiave e assert (CRT) macro.Tutti e tre i meccanismi generano messaggi di errore e due anche verificano le asserzioni del software.Un'asserzione software specifica una condizione che si prevede sia true in un determinato punto del programma.Se un'asserzione della fase di compilazione non riesce, il compilatore genera un messaggio di diagnostica e un errore di compilazione.Se un'asserzione di runtime ha esito negativo, il sistema operativo genera un messaggio di diagnostica e chiude l'applicazione.

Note

La durata dell'applicazione è costituito dalla pre-elaborazione, la compilazione in fase di runtime.Ciascun meccanismo di gestione degli errori l'accesso a informazioni di debug disponibili durante una di queste fasi.Per eseguire il debug in realtà, selezionare il meccanismo che fornisce informazioni appropriate su questa fase:

  • direttiva di #error ha luogo in effetti alla fase di pre-elaborazione.Incondizionatamente genera un messaggio definito dall'utente e provoca la compilazione non riesca a un errore.Il messaggio può contenere testo che viene modificato dalle direttive per il preprocessore ma qualsiasi espressione risultante non viene valutata.

  • static_assert la dichiarazione è in effetti in fase di compilazione.Verifica di un'asserzione software che è rappresentata da un'espressione integrale definita dall'utente che può essere convertita in un valore booleano.Se l'espressione restituisce zero (false), il compilatore genera il messaggio definito dall'utente e l'esito negativo di compilazione con un errore.

    static_assert la dichiarazione è particolarmente utile per il debug dei modelli perché gli argomenti di modello possono essere inclusi nell'espressione definita dall'utente.

  • assert (CRT) la macro viene in effetti in fase di esecuzione.Valuta un'espressione definita dall'utente e se il risultato è zero, il sistema genera un messaggio di diagnostica e chiude l'applicazione.Molte altre macro, ad esempio_ASSERT e _ASSERTE, simile a questa macro ma pubblicare i messaggi diagnostici definiti dal sistema o definiti dall'utente diversi.

Vedere anche

Riferimenti

direttiva di #error (C/C++)

assert (CRT)

_ASSERT, macro di _ASSERTE

static_assert

Macro di _STATIC_ASSERT

Altre risorse

Modelli