我几乎感到尴尬地问,但我总是很难如何组织异常定义.我以前做过的三种方式是:
使用每个文件的规则.我并不为此疯狂,因为它使我的目录结构和命名空间变得混乱.我可以将它们组织成子目录并为它们分段命名空间,但我不是很喜欢它,而这并不是标准库通常如何做到的.
将定义放在包含相关类的文件中.我不是很喜欢这个,因为那时异常定义分散了,如果没有代码导航工具的帮助可能很难找到.
一个文件,包含命名空间或相关类"包"的所有异常定义.这是上述两者之间的妥协,但可能会出现这样的情况,即很难判断哪些异常"属于"特定的一组类或一组功能.
我真的不喜欢上面的任何一种,但有一种最好的做法,我还没有接受,那会更好吗?
编辑:有趣.来自"Programming Visual C#2008:The Language",Donis建议:
为了方便和可维护性,将应用程序异常作为一个组部署在单独的程序集中.(第426页)
我想知道为什么?
我倾向于在每个文件中将Exceptions放在与生成它们的对象相同的包中,在单个文件中.这是Java API和.Net库使用的范例,因此大多数人至少熟悉对象的组织.
现代IDE在跟踪目录中的文件方面做得非常好,使得在同名文件中使用类的好处往往超过拥有更少文件的价值.