我有一个 Java 项目,它分为 3 个模块。这三个模块是独立的 Maven 项目,但它们之间存在依赖关系。关系很简单:
模块 A 依赖于模块 B
模块 B 依赖于模块 C
- 模块 C 是一个处理低级数据库任务(如创建会话等)的库。
- 模块 B 是一个数据库库,它定义了 DAO、DTO、实体等。
- 模块 A 是一个 Restful Web 服务,它包含业务逻辑并使用库 B 访问数据库。
我在模块 C 中定义了一个已检查的异常,该异常由公共方法引发。模块 B 可以得到这个异常。
我的问题是,这对 B 来说是否是一个好习惯
- 捕获这个已检查异常并将模块 B 中本地定义的另一个已检查异常抛出到模块 A。
- 不捕获已检查的异常,而是在其公共方法中声明此异常,以便将其传递给模块 A。
我个人的观点是,一个模块应该只向它的客户端模块抛出一个它定义的检查异常,除非是 Java 的预定义异常。但是这肯定有一个缺点,这意味着我必须在多个模块中创建两个不同的异常来表示相同的错误条件。
任何人都可以分享您的意见吗?