判斷提示和使用者提供的訊息 (C++)

C++ 語言支援三種錯誤處理機制,可協助您對應用程式進行偵錯: #error 指示詞 static_assert關鍵字,以及 判斷提示宏、_assert _wassert 宏。 這三種機制都會發出錯誤訊息,其中兩種還會測試軟體判斷提示。 軟體判斷提示會指定您希望在程式中的某個特定點為 true 的條件。 如果編譯時期判斷提示失敗,編譯器會發出診斷訊息和編譯錯誤。 如果執行階段判斷提示失敗,作業系統會發出診斷訊息並關閉應用程式。

備註

應用程式的存留期包括前置處理、編譯和執行階段。 每種錯誤處理機制均會存取其中任一階段可用的偵錯資訊。 若要有效偵錯,請選取能夠針對該階段提供適當資訊的機制:

  • #error 指示詞 在前置處理時間生效。 它會無條件發出使用者指定的訊息,並且會使編譯失敗並產生錯誤。 訊息可以包含由前置處理器指示詞操作但不會評估任何結果運算式的文字。

  • static_assert 宣告在編譯時期生效。 它會測試由使用者指定的整數運算式代表的軟體判斷提示,此判斷提示可以轉換為布林值。 如果運算式判斷值為零 (false),編譯器會發出使用者指定的訊息,且編譯會失敗並產生錯誤。

    static_assert 宣告適用於進行樣板偵錯,因為樣板引數可以包含在使用者指定的運算式中。

  • 判斷 提示宏,_assert,_wassert 宏在執行時間生效。 它會評估使用者指定的運算式,如果結果為零,系統會發出診斷訊息並關閉應用程式。 許多其他宏,例如 _ASSERT 和_ASSERTE,類似這個宏,但發出不同的系統定義或使用者定義診斷訊息。

另請參閱

#error 指示詞 (C/C++)
assert 巨集、_assert、_wassert
_ASSERT、_ASSERTE、_ASSERT_EXPR 巨集
static_assert
_STATIC_ASSERT 巨集
範本