共用方式為


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

C + + 語言支援三種錯誤處理機制,可協助您偵錯應用程式: 「 # 錯誤 」 的指示詞static_assert關鍵字,以及assert (CRT)巨集。 這三種方法發出錯誤訊息,而且兩個也測試軟體的判斷提示。 軟體的判斷提示就會指定您希望能在程式中特定時間點,則為 true 的條件。 如果編譯時間判斷提示失敗,編譯器會發出診斷訊息和編譯錯誤。 如果執行階段判斷提示失敗時,作業系統便會發出診斷訊息,並關閉您的應用程式。

備註

前置處理作業所組成的應用程式存留期、 編譯,並執行時間的階段。 每個錯誤處理機制會存取位於其中一個這三個階段的偵錯資訊。 若要有效地偵錯時,選擇提供該階段的適當資訊的機制:

  • 「 # 錯誤 」 的指示詞實際上是在前置處理時間。 無條件地將會發出使用者指定的訊息,並會造成編譯失敗,因發生錯誤。 訊息可包含前置處理器指示詞所操作的文字,但不是會評估任何產生的運算式。

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

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

  • assert (CRT)巨集實際上是在執行階段。 它會評估使用者定義的運算式,而且如果結果是零,系統便會發出診斷訊息,並關閉您的應用程式。 很多其他的巨集,例如_ASSERT 和**_ASSERTE**,看起來像此巨集,但發出不同的系統定義或使用者定義診斷訊息。

請參閱

參考

# error 指示詞 (C/C++)

assert (CRT)

_Assert 狀況,_asserte 的判斷提示巨集

static_assert

_STATIC_ASSERT 巨集

其他資源

範本