异常或错误消息

Exception or Error Messages

本文关键字:消息 错误 异常      更新时间:2023-10-16

我在设计一个返回双精度值的函数时遇到了一个难题。

函数正在执行一些计算,设计如下:

double SimpsonIntegration(const Function& f, float a, float b,int n,std::string& ErrorMessages)
if(n%2!=0)
{
    ErrorMessages=ErrorMessages+"Simpson Integration: Number of subintervals must be even numbern";
}else if(n<20||n>100)
{
    ErrorMessages=ErrorMessages+"Simpson Integration: Number of subintervals should be between 20 to 100n");
}
double h=0,x=0,y=0,retVal=0;

我的困境是,如果有一个错误,我不想继续双h=0 ....行,并希望尽快从函数返回。然而,由于它被设计为返回double值,所以我不能简单地使用返回表达式。我想过使用goto语句来结束函数或抛出错误,而不是使用错误消息字符串。但是如果我抛出错误而忘记捕获它,它将简单地终止程序,不幸的是c++没有一种机制来提醒程序员函数抛出错误并且必须由调用者捕获。

你建议用什么类型的设计来处理错误?提前感谢您

如果错误不能被忽略 -使用throw-catch

如果一个错误可以被忽略(但似乎不是你的情况),你有两个选择:

  1. 为错误码
  2. 使用单独的引用传递参数
  3. 返回错误代码(或success的代码),并使用引用传递参数返回实际结果