在哪个命名空间/包中放置异常

Fab*_*ano 5 c# java exception package-structuring namespace-organisation

构建异常类位置的常见或最佳实践是什么?

假设您有包/名称空间myproject.person(人员的模型和DAO)和myproject.order(订单的模型和DAO)以及例外PersonExceptionOrderException.我应该将异常放在相应的包中还是在单独的包中用于例外(例如myproject.exceptions)?

第一种方法似乎更合理(因为它按功能排序).但是问题出在哪里你应该放置与两者相关的例外?例如ConstraintViolationException

谢谢

And*_*are 12

根据我的经验,最好将异常放入对该异常有意义的包中.我不会仅为异常创建一个特殊的包 - 异常应该存在于使用它们的类附近.


Ste*_*n C 12

执行Java类库的功能.将异常放在与抛出它们的API类和接口相同的包中.


Lee*_*Lee 8

我会将它们放在与其对应的类相同的命名空间中.对于更一般的异常类型,您应该尝试将它们放在覆盖使用它们的类的最特定的命名空间中,因此ConstraintViolationException将放在myproject命名空间中.