典型的反应

本文深入探讨了在软件开发过程中如何有效地处理假设错误,提供了三种典型的方法:跳过依赖假设有效的代码、通过返回错误代码通知调用者以及立即终止程序。通过实例分析,帮助开发者在面对错误时做出更明智的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设错误处理

现在你知道假设错误通常发生,让我们完成了在不同的方式处理他们当他们出现。没有最好的方式来处理一个错误-这真的取决于问题的性质。

这里有一些典型的反应:

1)悄悄地跳过代码依赖于假设是有效的:

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];
}

在这种情况下,函数返回1,如果用户通过无效索引。

3)如果我们想终止程序立即退出函数,可以返回一个错误代码的操作系统:

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];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值