你不应该在这里使用例外.如果您需要在使用此功能的任何地方期待它,这显然不是一个例外情况!
更好的解决方案是让函数返回这样的实例.在调试版本中(假设开发人员使用他们刚编写的代码路径),如果他们忘记检查操作是否成功,他们将获得一个断言.
class SearchResult
{
private:
ResultType result_;
bool succeeded_;
bool succeessChecked_;
public:
SearchResult(Result& result, bool succeeded)
: result_(result)
, succeeded_(succeeded)
, successChecked_(false)
{
}
~SearchResult()
{
ASSERT(successChecked_);
}
ResultType& Result() { return result_; }
bool Succeeded() { successChecked_ = true; return succeeded_; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2149 次 |
| 最近记录: |