我几乎感到尴尬地问,但我总是很难如何组织异常定义。我以前做过的三种方式是:
我真的不喜欢上面的任何一种,但有一种最好的做法,我还没有接受,那会更好吗?
编辑:有趣。来自“编程Microsoft Visual C#2008:The Language”,Donis建议:
为了方便和可维护性, 将应用程序异常部署为 组在一个单独的程序集中。 (第426页)
我想知道为什么?
答案 0 :(得分:5)
我倾向于在每个文件中将Exceptions放在与生成它们的对象相同的包中,在单个文件中。这是Java API和.Net库使用的范例,因此大多数人至少熟悉对象的组织。
现代IDE在跟踪目录中的文件方面做得非常好,以至于在同名文件中使用类的好处往往超过拥有更少文件的价值。
答案 1 :(得分:3)
在C ++中,我总是定义我将在同一名称空间中用作异常的类,而不是抛出它们的类,将它们放在同一个标题中。对于将在类之间共享的通用异常,我使用单个标头将它们组合在一起,以及其他实用程序函数和类。
我不相信在这方面有任何正确的做事方式;在你的背景下,它是适合你的。
答案 2 :(得分:3)
我使用以下方法:
后者的变体是使异常成为抛出类的成员。我曾经这样做,但发现它很麻烦。