异常或错误消息
Exception or Error Messages
我在设计一个返回双精度值的函数时遇到了一个难题。
函数正在执行一些计算,设计如下:
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
如果一个错误可以被忽略(但似乎不是你的情况),你有两个选择:
- 为错误码 使用单独的引用传递参数
- 返回错误代码(或
success
的代码),并使用引用传递参数返回实际结果
相关文章:
- boost::进程间消息队列引发错误
- C++错误消息*成员参考.**初学者*
- 如何通过参数抛出错误消息
- glad 导致 glfwSwapBuffers 返回错误消息
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 重新定义预定义的 errno 错误消息 (E2BIG)
- SDL 映像:无法打开映像,仅显示错误消息
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 使用公钥加密消息:BER 解码错误
- 我在主函数的左括号上不断收到错误,消息为obj\Debug\main.o||在函数"ZN11linked_listC1Ev"中:|
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- 出现分段错误时,更改显示的消息错误
- 使用C 中的OPENSL RSA函数解密消息错误
- Linux汇编程序消息错误c++
- C++写入消息错误
- 发送http post消息错误报告的安全方式
- C++,在尝试创建类时收到此消息:错误:没有在类“media”中声明的“void media::*()”成员函数
- 编译器错误消息错误:令牌之前的预期')' '*'。我的构造函数出错