MFC 어설션
업데이트: 2007년 11월
이 항목은 다음 언어에 적용됩니다.
Edition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
네이티브 전용 |
|||
Standard |
네이티브 전용 |
|||
Pro 및 Team |
네이티브 전용 |
표의 범례:
해당 |
|
해당 없음 |
|
명령은 기본적으로 숨겨져 있습니다. |
MFC는 ASSERT 매크로를 정의하여 어설션을 검사합니다. 또한 MFC ASSERT_VALID 및 CObject::AssertValid를 정의하여 Cobject에서 파생된 개체의 내부 상태를 검사합니다.
MFC ASSERT 매크로는 인수(식)가 0이나 false로 계산되는 경우 프로그램 실행을 중지하고 사용자에게 알립니다. 0이 아닌 값으로 식이 계산되면 프로그램을 계속 실행합니다.
어설션 오류가 발생하면 메시지 대화 상자에 소스 파일의 이름과 어설션 줄 번호가 표시됩니다. 대화 상자에서 다시 시도를 선택하면 AfxDebugBreak를 호출하여 프로그램을 중단하고 디버거를 실행합니다. 이때 호출 스택과 다른 디버거 기능을 검사하여 어설션 오류 원인을 확인할 수 있습니다. Just-In-Time 디버깅을 활성화시키면, 대화 상자에서 어설션 오류가 발생했을 때 실행되지 않던 디버거를 시작할 수 있습니다.
다음 예제에서는 ASSERT를 사용하여 함수의 반환 값을 확인하는 방법을 보여 줍니다.
int x = SomeFunc(y);
ASSERT(x >= 0); // Assertion fails if x is negative
IsKindOf 함수와 함께 ASSERT를 사용하여 함수 인수의 형식을 확인할 수 있습니다.
ASSERT( pObject1->IsKindOf( RUNTIME_CLASS( CPerson ) ) );
ASSERT 매크로는 프로그램의 디버그 버전에서만 프로그램 오류를 찾아 내며 릴리스 버전에서는 코드를 생성하지 않습니다. 릴리스 버전에서는 ASSERT 대신 VERIFY 매크로를 사용하여 식을 계산하십시오.