1

我更喜欢错误管理的“rc”错误代码返回样式。我同意这带来的挑战可以通过 throw-catch 更好地解决,但是,我仍然觉得我没有以干净和可维护的风格进行设计和实施。因此,我正在寻找一本讨论该模式的好书,而不仅仅是一本参考书。

参考书目也可以...

我发现以下答案的摘录“敏捷程序员的实践”特别引人注目:

**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.
4

2 回答 2

2

我还没有找到一本专门讨论异常处理的书,但是有一些以一节或一章的篇幅来处理这个主题。

作为入门和与语言无关的方法,请参阅[Martin, Ch. 7][麦康奈尔,Ch。8.4]还处理了非常笼统的异常处理。有关使用例外的额外好建议,请参阅[Subramaniam, Hunt, Ch. 36, 37]。我还发现[Richter, Ch. 20]非常有用,尽管它特定于 .NET 和 C#。然而,有些部分也适用于其他语言。

建议:作为抛出异常和错误码返回编程风格的替代方法,对 WWW 中的“特殊情况模式”或“空对象模式”进行一些研究。

  • [马丁]马丁,CR(2008 年)。清洁代码:敏捷软件工艺手册。普伦蒂斯霍尔国际。
  • [麦康奈尔]麦康奈尔,S. (2004)。代码完成。
  • [Subramaniam, Hunt] Subramaniam, V., & Hunt, A. (2006)。敏捷开发人员的实践。务实的程序员。
  • [里希特] 里希特,J. (2010)。通过 C# 进行 CLR。微软出版社。
于 2010-10-04T19:29:34.257 回答
0

我不知道有任何书专门讨论异常抛出/使用的最佳实践。它可能是一个太具体的主题,无法保证整本书。此外,每种编程语言(C++ 与 Java)以及语言内的编程上下文(C# winforms 与 C# asp.net)的最佳实践可能会有很大差异。

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

于 2010-10-04T18:36:01.517 回答