2010-10-01 53 views
1

我更喜歡使用「rc」錯誤代碼返回錯誤管理風格。我同意這會帶來更好的投擲挑戰,但是,我仍然覺得我並不是以一種乾淨和可維護的風格進行設計和實施。所以,我正在尋找一本討論這種模式的好書,而不僅僅是一本參考書。有人可以引用一個很好的例外編程參考嗎?

引用的參考文獻就太細...

從下面的答案的摘錄,「敏捷編程的實踐」,我發現特別引人注目:

**Keeping Your Balance** 

• Determining who is responsible for handling an exception is part of design. 
• Not all situations are exceptional. 
• Report an exception that has meaning in the context of this code. A NullPointerException is pretty but just as useless as the null object described earlier. 
• If the code writes a running debug log, issue a log message when an exception is caught or thrown; this will make tracking them down much easier. 
• Checked exceptions can be onerous to work with. No one wants to call a method that throws thirty-one different checked exceptions. That’s a design error: fix it, don’t patch over it. 
• Propagate what you can’t handle. 

回答

2

我還沒有找到一本專門用於異常處理的書,但是有一些章節或章節的長度涉及這個主題。

作爲引物和語言不可知的方法,參見[Martin,Ch。 7][McConnel,Ch。 8.4]也在非常一般的基礎上處理異常處理。對於使用例外的更好建議,請參閱[Subramaniam,Hunt,Ch。 36,37]。我還發現[Richter,Ch。 20]雖然它特定於.NET和C#,但非常有用。儘管如此,有些章節也適用於其他語言。

建議:作爲拋出異常和錯誤代碼返回編程風格的替代方法,請對WWW中的「特殊情況模式」或「空對象模式」進行一些研究。

  • [Martin] Martin,C.R。(2008)。清潔 代碼:敏捷軟件手冊 工藝。普倫蒂斯廳 國際。
  • [McConnel] McConnel, S.(2004)。代碼完成。
  • [Subramaniam,Hunt] Subramaniam,V.,& Hunt,A.(2006)。 敏捷開發人員的實踐。實用程序員。
  • [Richter] Richter,J.(2010)。 CLR通過C#。 微軟出版社。
+0

我只檢查了引用「敏捷開發人員的實踐」,並帶來了一些極好的指導方針以及與困擾着我的場景的討論。因此,我認爲這是我尋找的起點,並將其作爲答案。隨着時間的推移,我預計這將得到進一步完善和驗證。 - 謝謝Theo。 – mobibob 2010-10-04 20:20:13

+0

你也應該看看[Martin]。它描述了返回代碼樣式的缺陷,並將其與異常處理進行對比。 [Martin]使用代碼示例非常令人印象深刻地說明這一點。 [Subramaniam,Hunt]在實踐層面比代碼更多。 – 2010-10-04 21:28:55

0

我沒有意識到任何專門處理異常拋出/使用的最佳實踐的書。這可能是一個太具體的話題,需要整本書。另外,對於每種編程語言(C++與Java)以及語言中的編程上下文(C#winforms與C#asp.net),最佳實踐可能會有很大差異。

我懷疑你最好的選擇是谷歌它;您可能會發現一些解決該主題的博客帖子(希望最好的/最受尊敬的博客帖子將接近谷歌搜索結果的頂部)。

+0

感謝moikemanne--實際上,我在與怪物打交道的數週衝浪後發佈了這個問題。我完全同意你對特定性的評估,這可能是我在社區搜索的原因。 – mobibob 2010-10-04 20:28:06

相關問題