MFC 判斷提示
這個主題適用於:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
僅適用原生 |
||||
Pro、Premium 和 Ultimate |
僅適用原生 |
MFC 會定義檢查判斷提示的 ASSERT 巨集。 它也會定義檢查 CObject 衍生物件之內部狀態的 MFC ASSERT_VALID 和 CObject::AssertValid。
MFC ASSERT 巨集會在引數 (運算式) 評估結果是零或 False 時,中止程式執行並警示使用者。 如果運算式評估結果不為零,才會繼續執行。
當判斷提示失敗時,會出現一個顯示原始程式檔名稱和判斷提示行號的訊息對話方塊。 如果您選擇了對話方塊裡的 [重試],則呼叫 AfxDebugBreak 會造成偵錯工具執行中斷。 此時,您可以檢查呼叫堆疊和其他偵錯工具設施,來決定造成判斷提示失敗的原因。 如果您已經啟用 Just-in-Time 偵錯,對話方塊在判斷提示失敗發生又沒有執行偵錯工具時,便會啟動偵錯工具。
下列範例顯示如何使用 ASSERT 來檢查函式的傳回值:
int x = SomeFunc(y);
ASSERT(x >= 0); // Assertion fails if x is negative
您可以使用 ASSERT 搭配 IsKindOf 函式來提供函式引數的類型檢查:
ASSERT( pObject1->IsKindOf( RUNTIME_CLASS( CPerson ) ) );
ASSERT 巨集只會捕捉偵錯版本程式的程式錯誤。 此巨集不會在發行版本中產生程式碼。 如果您需要評估發行版本裡的運算式,請使用 VERIFY 巨集取代 ASSERT。