【发布时间】:2010-11-26 04:15:16
【问题描述】:
我正在开发一个生成设备报告的库。 generate_report (const std::string& no) 成员函数可能由于各种原因而失败:
- 报告编号无效。
- 无效状态(
report_generator是 FSM) - 没有设备处于活动状态
- 报告生成期间出错
哪种错误处理机制最适合这些错误?
- 只需返回
true或false - 返回错误代码
- 断言并记录
- 抛出异常
- 以上任意组合
一些上下文信息:正常的工作流程如下。用户激活设备,从列表中选择报告并点击“生成”。
编辑:感谢到目前为止的回复!对我来说,现在很清楚何时使用断言以及何时进行错误处理。至于错误处理,错误代码和异常各有利弊。我想我会寻找例外(并为上述错误创建四个类),但我还没有真正相信。我总是想到“意外情况”的例外情况。一个无效的报告不是真的出乎意料。有什么建议吗? :)
【问题讨论】:
-
另外,查看错误处理标签。那里有很多有趣的贡献。 stackoverflow.com/questions/tagged/error-handling
-
非常感谢,我完全错过了这些,因为最初我只搜索与 c++ 相关的问题
标签: c++ exception error-handling assert