假设我有一个函数:

int AndTwoNum(int N, int M, int i)
{
    if ((i < 0) || (i > 31))
    {
        return  //what should I return here?
    }

    int mask = ~0 << i;
    int N_modify = N & mask;
    int M_modify = M & (~mask);

    return N_modify | M_modify;
}

此函数将N的0到i位替换为M的0到i位,并返回值。但是,这里我们必须检查i是否在[0,31]范围内。如果不是,我们需要立即停止该功能。但是,我不知道该怎么回事给我。

最佳答案

一个选项可能是在无效输入的情况下仅抛出异常,例如

#include <stdexcept>   // For std::invalid_argument
...

int AndTwoNum(int N, int M, int i)
{
    // Check 'i' range.
    if ((i < 0) || (i > 31))
    {
        throw std::invalid_argument("'i' is out of valid range (0-31).");
    }
    ...

关于c++ - 如何返回以表示C++中的意外输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23090442/

10-11 22:45
查看更多