【问题标题】:Returning Meaningful Errors From C++ Function - Best Practice从 C++ 函数返回有意义的错误 - 最佳实践
【发布时间】:2013-08-12 13:12:25
【问题描述】:

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

bool thisFunctionReturnsError(type param1, type param2, returntype& return)

这是可行的,如果发生错误,它会返回真/假,否则将在返回变量中返回一个有效的“returntype”供程序员使用。但我的问题是 - 这是最佳做法吗?

我找到了以下主题,但它与 C 有关。我很好奇 C++ 是否有更好的方法来做到这一点,不涉及异常(因为它们不是标准的)。

What is the best way to return an error from a function when I'm already returning a value?

谁能给我一些建议?谢谢!

【问题讨论】:

  • 异常不标准?

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


【解决方案1】:

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

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

【讨论】:

  • 第二段完美地描述了我的问题。这些错误是正常程序流程的一部分。谢谢。
猜你喜欢
  • 2012-02-03
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 2017-07-23
  • 2012-01-31
  • 1970-01-01
相关资源
最近更新 更多