我在我的C++项目中使用错误代码来处理错误。问题是如何从一个本应返回某些变量/对象的函数中返回错误代码。
考虑以下情况:
long val = myobject.doSomething();
在这里,myobject 是某个类的对象。如果 doSomething 函数遇到一些错误条件,那么应该如何通知调用者 (不使用异常)。
可能的解决方案:
- 在类中设置一个数据成员 (比如 err_),可以由调用者检查。但是在共享同一对象并调用相同函数的多线程应用程序中,它是不安全的。
- 使用一些全局的错误变量,同样存在多线程环境下的问题。
现在,我该如何通知调用者发生了一些错误条件?
const
引用传递该对象,而且没有明显的错误值或者您需要指示发生了什么具体的错误,那么您就需要使用异常,否则事情将变得笨拙。这就是事实。我同意 MSalters 的评论。 - sbi