我一直是'無例外'陣營的一部分,但不是那麼虔誠。我有一個關於支持者使用例外經常提出的論點的問題。因此,我最大的(唯一的)C++異常抱怨是代碼的不可預測性。我希望能夠看到代碼(VIM中沒有任何IDE),並且確切地看到它在所有情況下的作用。除了例外,邏輯流程並不明顯,因爲throw和catch可以分開很多邏輯層。C++異常與錯誤代理
pro-exception異常響應的典型計數器是:「是的,這很糟糕,但是嵌套的錯誤代碼吸得更多。」
嗯,是的,但這是不是的替代方案。如果你知道你的MyClass可能會得到一個XYZ錯誤,並且你想要處理它多個邏輯層,那麼你可以給它傳遞一個指向MyErrorProxy的指針(這是一個指向MyErrorProxy的指針)可以是一個混合,一個接口,或只是一個集中的錯誤處理類)?你不想傳遞指針?好吧,讓它成爲一個線程安全的單例。這需要更多的管道,但它是明確的和非常容易跟蹤邏輯流程。
這就是我一直在編碼很長一段時間。
現在我的問題是:這樣做的真正缺點是什麼?如果您在我離開後很長時間看到此代碼並且您維護它,您會生氣嗎?你真的寧願嘗試(s)並抓住(es)而不是這個機制,爲什麼?
如果發生意外錯誤怎麼辦? – 2012-07-19 20:29:53
聽起來好像你遇到了一些例外的不好的經歷。大多數情況下,良好的使用異常並不會讓它們從應用程序中解放出來。在調用者或調用者的調用者級別處理它們通常更容易理解。 – Dulan 2012-07-19 20:31:02
對象的構造函數中的錯誤怎麼樣? – ForEveR 2012-07-19 20:31:54