你能确定的假设可能违反了?答案是,运营商新的(实际上是调用一个函数分配做)如果用户内存失败。如果发生这种情况,pandata将被设置为零,当我们使用下标操作符对pandata,程序会崩溃。这里的错误检查新版本:
问题:当程序接收输入(无论是从用户,或文件),输入不正确的格式。这里的示例程序,你看到的:
这里是检查用户输入是否有效版本:
1
2
3
4
5
6
// Delcare an array of 10 integers
int *panData = new int[10];
// If something went wrong
if (!panData)
exit(2); // exit the program with error code 2
panData[5] = 3;问题:当程序接收输入(无论是从用户,或文件),输入不正确的格式。这里的示例程序,你看到的:
1
2
3
4
5
6
7
char strHello[] = "Hello, world!";
std::cout << "Enter an index: ";
int nIndex;
std::cin >> nIndex;
std::cout << "Letter #" << nIndex << " is " << strHello[nIndex] << std::endl;这里是检查用户输入是否有效版本:
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;假设错误处理
现在你知道假设错误通常发生,让我们完成了在不同的方式处理他们当他们出现。没有最好的方式来处理一个错误-这真的取决于问题的性质。
这里有一些典型的反应:
1)悄悄地跳过代码依赖于假设是有效的:
本文深入探讨了编程中常见的错误处理方法,特别是如何在假设可能违反时采取措施。通过实例展示了如何优雅地处理用户输入错误,确保程序稳定运行。同时,文章强调了不同场景下错误处理策略的重要性,并提供了实用的代码示例。

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



