在 C++ 中,assert
宏用于在運行時檢查某個條件是否為真。如果條件為假,程序會終止并顯示一個默認的錯誤消息。然而,你可以通過定義宏來自定義失敗時的錯誤消息。
以下是一個示例,展示了如何自定義 assert
的失敗信息:
#include <iostream>
#include <cassert>
#define CUSTOM_ASSERT(condition, message) \
do { \
if (!(condition)) { \
std::cerr << "Assertion failed: " << message << std::endl; \
std::abort(); \
} \
} while (0)
int main() {
int x = 5;
int y = 0;
CUSTOM_ASSERT(y != 0, "Division by zero is not allowed.");
int z = x / y; // 這將觸發自定義的 assert 失敗消息
return 0;
}
在這個示例中,我們定義了一個名為 CUSTOM_ASSERT
的宏,它接受兩個參數:一個條件和一個自定義的錯誤消息。如果條件為假,程序將輸出自定義的錯誤消息并終止。
請注意,這種方法僅適用于調試階段,因為在發布版本的程序中,assert
宏將被禁用。如果你需要在生產環境中處理錯誤,建議使用異常或其他錯誤處理機制。