Compartir a través de


Aserciones de MFC

Actualización: noviembre 2007

Este tema es aplicable a:

Edición

Visual Basic

C#

C++

Web Developer

Express

Sólo para código nativo

Standard

Sólo para código nativo

Pro y Team

Sólo para código nativo

Leyenda de la tabla:

Se aplica

No procede

Comando o comandos ocultos de manera predeterminada.

MFC define la macro ASSERT para comprobar aserciones. Asimismo, define MFC ASSERT_VALID y CObject::AssertValid para comprobar el estado interno de un objeto derivado de CObject.

La macro ASSERT de MFC detiene la ejecución de un programa y alerta al usuario si el argumento (una expresión) se evalúa como cero o False. Si la expresión se evalúa como un valor distinto de cero, la ejecución continúa.

Cuando se produce un error de aserción, un cuadro de mensaje muestra el nombre del archivo de código fuente y el número de línea de la aserción. Si se elige Reintentar en el cuadro de diálogo, una llamada a AfxDebugBreak hace que la ejecución se interrumpa y se inicie el depurador. En ese punto, se puede examinar la pila de llamadas y otros servicios del depurador para determinar la causa del error de aserción. Si la depuración Just-in-time está habilitada, el cuadro de diálogo puede iniciar el depurador, a menos que ya estuviera en ejecución cuando se produjo el error de aserción.

En el siguiente ejemplo se muestra cómo se utiliza ASSERT para comprobar el valor devuelto por una función:

int x = SomeFunc(y);
ASSERT(x >= 0);   //  Assertion fails if x is negative

Se puede utilizar ASSERT con la función IsKindOf para proporcionar la comprobación de tipos de los argumentos de una función:

ASSERT( pObject1->IsKindOf( RUNTIME_CLASS( CPerson ) ) );

La macro ASSERT captura errores de programa sólo en la versión de depuración del programa. La macro no produce código en la versión de lanzamiento. Si necesita evaluar la expresión en la versión de lanzamiento, utilice la macro VERIFY en vez de ASSERT.

Vea también

Conceptos

Aserciones