有人可以引用一个很好的参考编程与异常?

时间:2010-10-01 15:12:09

标签: design-patterns exception coding-style throw try-catch

我更喜欢使用“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 个答案:

答案 0 :(得分: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,J。(2010)。 CLR通过C#。 微软出版社。

答案 1 :(得分:0)

我不知道有任何专门针对异常抛出/使用的最佳实践的书。保证整本书可能过于具体。此外,对于每种编程语言(C ++与Java)以及语言中的编程上下文(C#winforms与C#asp.net),最佳实践可能会有很大差异。

我怀疑你最好的选择是google它;您可能会找到一些解决该主题的博客文章(希望最好/最受尊重的博客文章将接近谷歌搜索结果的顶部)。