是否应将例外情况放在单独的包裹中?

我正在进行一个项目,其中所有exception都放在一个单独的包com.myco.myproj.exceptions

这是好习惯吗?

我希望包中的例外存在于该包中。 例如

 com.oopsconsultancy.models.pricing 

将包含定价模型和相关的例外。 其他任何事情似乎都有点反直觉。

这是一个不好的做法。

这是一个巧合的分组。 包应该是连贯的。 不要将exception,接口,枚举,抽象类等分组到它们自己的包中。 相反,分组相关概念。

这将是一个不好的做法 ,将导致不必要的跨包依赖。 应始终在与能够抛出它的类相同的包中定义自定义exception类。 您应该尝试最小化创建在整个应用程序中使用的自定义exception,以便使用Exception 。 自定义exception,顾名思义是一个自定义exception,应该专注于特定的部分。 对于自定义实用程序类,这应该是相同的。

包应该能够呈现单个function单元。 请参阅此示例。 自定义exception将被抛弃,它是该function单元的一部分,应该在同一个包中

例如:

 // Below should be in a single package interface Draggable{} abstract class Graphic{} class Circle extends Graphic implements Draggable{} class Box extends Graphic implements Draggable{} final class GraphicValidator {// utility class} // don't put below in a separate 'exceptions' package, // who's gonna use it anyway other than the components in this package ? class GraphicRenderingException extends Exception{}