我正在编写一个具有可以返回多种不同类型错误的函数的类,具体取决于函数停止工作的位置。就目前而言,我没有正式的想法如何做到这一点,但我见过类似的东西:
bool thisFunctionReturnsError(type param1, type param2, returntype& return)
这样可行,如果发生错误则返回true / false,否则将返回有效的“returntype”到返回变量中供程序员使用。但我的问题是 - 这是最佳做法吗?
我找到了以下主题,但它与C有关。我很好奇C ++是否有更好的方法来做到这一点,不涉及异常(因为它们不是标准的)。
What is the best way to return an error from a function when I'm already returning a value?
有人可以给我一些建议吗?谢谢!
答案 0 :(得分:0)
从技术上讲,如果错误是在正常操作中不应发生的事情,那么这就是C ++期望你使用异常的东西,它们与C ++中的任何其他东西一样标准。
但是,如果错误可能是正常程序流程的一部分,或者由于性能异常不是一个选项,请考虑返回std::pair
或std::optional
(C ++ 14或boost )如果只需要失败/成功信息。