我對C++異常兩個問題/反射/疑惑:C++異常(使用提示)
IMO當我們想到在代碼中使用異常,我們必須做出明確的決定 - 總是使用異常或不使用他們。這說明了應用程序如何處理錯誤,並且代碼更易於閱讀。我也總是認爲,有些東西可能會拋出異常,並且我幾乎在任何地方都放置try/catch塊。我的「規則」是否合理?
STL類和算法產生的所有異常都是從
std::exception
派生的嗎?我的例外課程始終來自標準課程(runtime_error
,logic_error
等)。我想知道我是否可以安全地將catch (...)
替換爲catch(const std::exception& object)
,因爲第二個總是提供有關異常原因的一些信息。
這很好,假設一切都會拋出異常。但是如果你需要清理或者「處理」一個異常,只有「catch」。不要隨機發生異常。 –
這些try/catch塊的用途是什麼?如果你不能處理這個異常,當然你不應該接受它。聽起來像你無緣無故地捕捉它們。另外,[看看這個視頻](http://channel9.msdn。COM /顯示/去+深/ C-和超越-2012-安德烈 - Alexandrescu的系統性,錯誤處理 - 在-C)。是的,所有異常類都應該從'std :: exception'繼承。爲了完整性,你通常應該在主底部有一個「catch(...)」。但無論如何,這並不具有建設性,因爲它沒有明確的答案。 – GManNickG
@GManNickG謹慎發佈,作爲答案,我可以upvote? –