2015-08-13 86 views
1

我考虑误差在嵌入式系统中处理,特别是在C++,我想获得我的理解是不同的使用情况有些异常输入处理,返回代码和断言。错误在嵌入式系统

比方说,我们有一个系统可以分析从传感器获得的信号,并对结果进行一些计算。如果信号平坦,我们不在操作范围内,我们不能执行算法。

返回代码:平面信号是预期的并且不是一个例外条件,返回代码如FLAT_SIGNAL让更高级代码知道不运行算法并让用户知道我们超出范围就足够了。这是正常程序流程的一部分。

例外:如果传​​感器得到断开,或者如果信号表示的其他异常外部条件标志,抛出异常。

断言:使用断言检查一类和/或函数的参数状态,以查找编程错误或缺陷。不应该包含在发布代码中。

编辑:添加一些具体问题。

混合异常和返回码可以吗?应该在发布代码中关闭断言?在我描述的情况下,例外情况听起来有点过分吗?

+0

你的想法是什么使用听起来合理。你的问题到底是什么? –

+0

编辑了一些具体问题的答案 –

回答

1

是的,将返回值和异常组合起来确实很好。对于“通常不会发生”的事情使用异常,并为仍然需要检查的事情返回值。

当然,编程错误(例如,检查指针不是NULL,检查值是否在范围内,值是否已初始化等等)的编号为assert