假设错误处理

来源:互联网 发布:php 数组转json 编辑:程序博客网 时间:2024/06/04 20:01
问题:当一个函数返回返回值可能表明发生了一个错误。|
1
2
3
// Declare an array of 10 integers
int*panData = newint[10];
panData[5] = 3;
你能确定的假设可能违反了?答案是,运营商新的(实际上是调用一个函数分配做)如果用户内存失败。如果发生这种情况,pandata将被设置为零,当我们使用下标操作符对pandata,程序会崩溃。这里的错误检查新版本
1
2
3
4
5
6
// Delcare an array of 10 integers
int*panData = newint[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
charstrHello[] = "Hello, world!";
std::cout << "Enter an index: ";
 
intnIndex;
std::cin >> nIndex;
 
std::cout << "Letter #" << nIndex << " is " << strHello[nIndex] << std::endl;
这里是检查用户输入是否有效版本
1
2
3
4
5
6
7
8
9
10
charstrHello[] = "Hello, world!";
 
intnIndex;
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)悄悄地跳过代码依赖于假设是有效的


0 0