如何在案例中向我的代码客户端显示错误?
以下是某人将使用的功能:
double firstTaskSum(int n, double x)
{
if(n < 0)
{
cout << ("n is invalid! n : " + std::to_string(n) + ". And must be n >= 0.");
return;
}
if(x == 0)
{
cout << ("x is invalid! 0 to power of 0 is undefined.");
return;
}
return firstTaskSumUp(0, n, x, 1, 1);
}
当我尝试编译它时会出错,因为它什么都不返回。我该怎么办呢?我不想返回伪变量,因为它们可能是某些输入的实际输出。
使用此类代码时:
double firstTaskSum(int n, double x)
{
if(n < 0)
{throw invalid_argument("n is invalid! n : " + std::to_string(n) + ". And must be n >= 0.");}
if(x == 0)
{throw invalid_argument("x is invalid! 0 to power of 0 is undefined.");}
return firstTaskSumUp(0, n, x, 1, 1);
}
我希望错误输出到控制台并且程序流不会停止。
答案 0 :(得分:1)
你可以抛出异常:
#include <stdexcept>
using namespace std;
double firstTaskSum(int n, double x)
{
if (n < 0)
{
throw invalid_argument("n must be positive");
}
if (x == 0)
{
throw invalid_argument("x can't be 0");
}
return firstTaskSumUp(0, n, x, 1, 1);
}
答案 1 :(得分:0)
抛出异常的另一个选择是对参数有效性进行函数检查。
if (IsArgumentValid(1, 1))
firstTaskSum(1, 1);
else
cout << "Invalid arguments\n";