1
我目前正在開發一個模擬工具。該工具不是交互式的。所有可能的例外都將歸因於編程錯誤(開發過程中)或輸入數據損壞。如果發生異常,程序必須終止,因爲它無法運行。我應該在所有異常導致終止的程序中使用異常處理嗎?
所以,我有兩個選擇:
- 使用C++異常處理。 Pro:調試時崩潰時會得到堆棧跟蹤。 Contra:嚴重(?)性能開銷。
- 調用終止程序的錯誤函數。 Pro:快速簡單。 Contra:沒有堆棧跟蹤。
問題:對性能的影響有多糟糕?一些例外情況可能源自非常重要的功能。
請讓我知道是否有任何根本性的錯誤在我的考慮。
你是怎麼想到***嚴重**性能開銷*?典型的實現只在引發異常時引入開銷,而不是在採用非例外路徑時引入開銷。 – Praetorian 2014-12-03 20:37:55
@Praetorian:由於減少了優化的可能性,還有一些開銷(這是'noexcept'的一個重要原因)。儘管如此,還是不是很嚴肅 – Deduplicator 2014-12-03 20:46:04
你確定你不能在'abort()'上獲得核心轉儲嗎? – Deduplicator 2014-12-03 20:48:17