判斷提示和使用者提供的訊息 (C++)
C++ 語言支援三種錯誤處理機制,可協助您偵錯應用程式:#error 指示詞、static_assert 關鍵字和 assert (CRT) 巨集。 這三種機制都會發出錯誤訊息,其中兩種還會測試軟體判斷提示。 軟體判斷提示會指定您希望在程式中的某個特定點為 true 的條件。 如果編譯時期判斷提示失敗,編譯器會發出診斷訊息和編譯錯誤。 如果執行階段判斷提示失敗,作業系統會發出診斷訊息並關閉應用程式。
備註
應用程式的存留期包括前置處理、編譯和執行階段。 每種錯誤處理機制均會存取其中任一階段可用的偵錯資訊。 若要有效偵錯,請選取能夠針對該階段提供適當資訊的機制:
#error 指示詞適用於前置處理階段。 它會無條件發出使用者指定的訊息,並且會使編譯失敗並產生錯誤。 訊息可以包含由前置處理器指示詞操作但不會評估任何結果運算式的文字。
static_assert 宣告適用於編譯時期。 它會測試由使用者指定的整數運算式代表的軟體判斷提示,此判斷提示可以轉換為布林值。 如果運算式判斷值為零 (false),編譯器會發出使用者指定的訊息,且編譯會失敗並產生錯誤。
static_assert 宣告適用於進行樣板偵錯,因為樣板引數可以包含在使用者指定的運算式中。
assert (CRT) 巨集適用於執行階段。 它會評估使用者指定的運算式,如果結果為零,系統會發出診斷訊息並關閉應用程式。 許多其他巨集 (例如_ASSERT 和 _ASSERTE) 與此巨集相似,但會發出不同的系統定義或使用者定義的診斷訊息。