我正在开展一个项目,其中所有异常都放在一个单独的包com.myco.myproj.exceptions
中。
这是好习惯吗?
答案 0 :(得分:48)
我希望包中的例外存在于该包中。 e.g。
com.oopsconsultancy.models.pricing
将包含定价模型和相关例外。其他任何事情似乎都有点反直觉。
答案 1 :(得分:41)
这是一种不好的做法。
这是一个巧合的分组。包应该是连贯的。不要将异常,接口,枚举,抽象类等分组到它们自己的包中。相反,将相关概念分组。
答案 2 :(得分:0)
这将是一个糟糕的做法,并将导致不必要的跨包依赖。应始终在与能够抛出它的类相同的包中定义自定义异常类。您应该尝试最小化创建在整个应用程序中使用的自定义异常,以便使用异常。自定义异常,顾名思义是一个自定义异常,应该专注于特定的部分。对于自定义实用程序类,这应该是相同的。
包应该能够呈现单个功能单元。有关示例,请参阅this。 自定义异常,它将被抛弃,是该功能单元的一部分,应该在同一个包中。
例如:
// 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{}