1
2
3
4
5
6
void PrintString(char *strString)
{
// Only print if strString is non-null
if (strString)
std::cout << strString;
在上面的例子中,如果strstring是空的,我们不打印任何东西。我们必须跳过的代码依赖于strstring非空。
2)如果我们是一个函数,返回一个错误代码返回给调用者,让来电者处理问题。
1
2
3
4
5
6
7
8
9
10
int g_anArray[10]; // a global array of 10 characters
int GetArrayValue(int nIndex)
{
// use if statement to detect violated assumption
if (nIndex < 0 || nIndex > 9)
return -1; // return error code to caller
return g_anArray[nIndex];
}
In this case, the function returns -1 if the user passes in an invalid index.
) 如果我们想 终止程序 立即 退出 函数 , 可以 返回一个错误 代码的 操作系统 :
1
2
3
4
5
6
7
8
9
10
int g_anArray[10]; // a global array of 10 characters
int GetArrayValue(int nIndex)
{
// use if statement to detect violated assumption
if (nIndex < 0 || nIndex > 9)
exit(2); // terminate program and return error number 2 to OS
return g_anArray[nIndex];
}
如果用户输入了一个无效的指标,这个程序将立即终止(没有错误信息)传递给操作系统错误代码2。
4)如果用户输入无效的输入,要求用户重新输入输入。
1
2
3
4
5
6
7
8
9
10
char strHello[] = "Hello, world!";
int nIndex;
do
{
std::cout << "Enter an index: ";
std::cin >> nIndex;
} while (nIndex < 0 || nIndex >= strlen(strHello));
std::cout << "Letter #" << nIndex << " is " << strHello[nIndex] << std::endl;