2015-08-13 113 views
1

我考慮誤差在嵌入式系統中處理,特別是在C++,我想獲得我的理解是不同的使用情況有些異常輸入處理,返回代碼和斷言。錯誤在嵌入式系統

比方說,我們有一個系統可以分析從傳感器獲得的信號,並對結果進行一些計算。如果信號平坦,我們不在操作範圍內,我們不能執行算法。

返回代碼:平面信號是預期的並且不是一個例外條件,返回代碼如FLAT_SIGNAL讓更高級代碼知道不運行算法並讓用戶知道我們超出範圍就足夠了。這是正常程序流程的一部分。

例外:如果傳​​感器得到斷開,或者如果信號表示的其他異常外部條件標誌,拋出異常。

斷言:使用斷言檢查一類和/或函數的參數狀態,以查找編程錯誤或缺陷。不應該包含在發佈代碼中。

編輯:添加一些具體問題。

混合異常和返回碼可以嗎?應該在發佈代碼中關閉斷言?在我描述的情況下,例外情況聽起來有點過分嗎?

+0

你的想法是什麼使用聽起來合理。你的問題到底是什麼? –

+0

編輯了一些具體問題的答案 –

回答

1

是的,將返回值和異常組合起來確實很好。對於「通常不會發生」的事情使用異常,併爲仍然需要檢查的事情返回值。

當然,編程錯誤(例如,檢查指針不是NULL,檢查值是否在範圍內,值是否已初始化等等)的編號爲assert