从C ++函数中回归有意义的错误 - 最佳实践

时间:2013-08-10 21:15:31

标签: c++ error-handling pass-by-reference

我正在编写一个具有可以返回多种不同类型错误的函数的类,具体取决于函数停止工作的位置。就目前而言,我没有正式的想法如何做到这一点,但我见过类似的东西:

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?

有人可以给我一些建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

从技术上讲,如果错误是在正常操作中不应发生的事情,那么这就是C ++期望你使用异常的东西,它们与C ++中的任何其他东西一样标准。

但是,如果错误可能是正常程序流程的一部分,或者由于性能异常不是一个选项,请考虑返回std::pairstd::optional(C ++ 14或boost )如果只需要失败/成功信息。