5)cerr是另一个机制是这是专门为打印错误消息。一个输出流cerr(就像cout)中定义的,是适合iostream.h. cerr写的,错误信息(就像cout在屏幕),但它可以redirected单独一个文件。
1
2
3
4
5
6
7
8
void PrintString(char *strString)
{
// Only print if strString is non-null
if (strString)
std::cout << strString;
else
std::cerr << "PrintString received a null parameter";6)如果在某种图形环境下工作(如MFC或SDL),这是常见的弹出一个错误代码消息框然后终止程序。
断言的
使用条件语句来检测违反假设,随着印刷错误信息并终止程序是这样一个共同的响应问题,C++提供了一种快捷方法这样做。此快捷方式被称为一个断言。
Assert语句是一个预处理宏计算条件表达式。如果条件表达式为真,assert语句不。如果条件表达式的值为false,则显示错误信息并终止程序。这个错误消息包含条件表达式失败,随着代码的文件名和行号的断言。这使得它告诉问题不仅是很容易的,但在代码中发生的问题。这可以帮助调试的努力非常。
Assert功能生活在cassert头,常被用来检查传递给函数的参数是有效的,并检查一个函数调用的返回值是有效的。
2
3
4
5
6
7
8
9
10
int g_anArray[10]; // a global array of 10 characters
#include <cassert> // for assert()
int GetArrayValue(int nIndex)
{
// we're asserting that nIndex is between 0 and 9
assert(nIndex >= 0 && nIndex <= 9); // this is line 7 in Test.cpp
return g_anArray[nIndex];
}
If the user calls GetValue(-3), the program prints the following message:
本文深入探讨了C++中错误处理的关键概念,包括cerr用于打印错误消息、图形环境下的错误提示框、断言功能及其在验证函数参数和检查函数返回值的有效性中的应用。通过实例展示了如何使用assert语句来快速定位和解决编程过程中的问题。

被折叠的 条评论
为什么被折叠?



