MFC-Assertionen

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

Thema ist nicht vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Pro, Premium und Ultimate

Thema ist nicht vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Das ASSERT-Makro für die Assertionsüberprüfung ist in MFC definiert. Darüber hinaus bietet MFC Definitionen für "MFC ASSERT_VALID" und "CObject::AssertValid" zum Überprüfen des internen Zustands eines von CObject abgeleiteten Objekts.

Wenn das Argument (ein Ausdruck) mit 0 (null) oder false ausgewertet wird, wird die Programmausführung durch das MFC-Makro ASSERT angehalten und eine Benutzerwarnung ausgegeben. Wenn der Ausdruck einen Wert ungleich 0 (null) ergibt, wird die Ausführung fortgesetzt.

Schlägt eine Assertion fehl, wird der Name der Quelldatei sowie die Zeilennummer der Assertion in einem Meldungsdialogfeld angezeigt. Wenn Sie im Dialogfeld auf Wiederholen klicken, wird AfxDebugBreak aufgerufen, die Ausführung unterbrochen und der Debugger aufgerufen. An diesem Punkt können Sie die Aufrufliste und weitere Debuggerfunktionen überprüfen, um die Ursache für den Assertionsfehler zu ermitteln. Bei Aktivierung des Just-In-Time-Debuggens kann der Debugger über das Dialogfeld aufgerufen werden, sofern er beim Auftreten des Assertionsfehlers nicht ausgeführt wurde.

Das folgende Beispiel veranschaulicht die Verwendung von ASSERT, um den Rückgabewert einer Funktion zu überprüfen:

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

Um eine Typüberprüfung für die Funktionsargumente vorzunehmen, können Sie ASSERT mit der IsKindOf-Funktion verwenden:

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

Programmfehler werden vom ASSERT-Makro nur in der Debugversion des Programms aufgefangen. In der Releaseversion generiert das Makro keinen Code. Wenn Sie den Ausdruck in der Releaseversion auswerten müssen, verwenden Sie anstelle von ASSERT das VERIFY-Makro.

Siehe auch

Konzepte

Assertionen