Java包是否应该抛出其依赖模块的已检查异常
我有一个Java项目,分为3个模块。这三个模块是独立的Maven项目,但它们之间存在依赖关系。关系很简单: 模块A依赖于模块B 模块B依赖于模块CJava包是否应该抛出其依赖模块的已检查异常,java,Java,我有一个Java项目,分为3个模块。这三个模块是独立的Maven项目,但它们之间存在依赖关系。关系很简单: 模块A依赖于模块B 模块B依赖于模块C 模块C是一个库,它处理诸如创建会话等低级数据库任务 模块B是定义DAO、DTO、实体等的数据库库 模块A是一个Restful Web服务,它包含业务逻辑并使用库B访问数据库 我在模块C中定义了一个checked异常,它是由公共方法引发的。模块B可以获取此异常 我的问题是,对于B来说 捕获此已检查异常并将模块B中本地定义的另一个已检查异常抛出到模块
- 模块C是一个库,它处理诸如创建会话等低级数据库任务
- 模块B是定义DAO、DTO、实体等的数据库库
- 模块A是一个Restful Web服务,它包含业务逻辑并使用库B访问数据库
有人能分享你的观点吗?我不太担心抛出异常,而更担心如何处理它们 例外情况应该是例外情况。只有在处理得当的情况下才能抓住它们。如果无法处理,如果是未检查的异常,则什么也不做;如果是,则捕获并重新抛出 有些模块永远不应该抛出异常。我想到的是UI控制器,因为如果用户看到堆栈跟踪,他们会有不好的体验。我还想到了web服务,因为HTTP不知道也不关心您的异常 您的错误处理策略不应围绕异常。您可以在模块之间发送代码,并签订处理这些代码的合同 日志记录不可处理
根据你发布的内容,我无法建议你做什么。我想知道更多关于模块的功能 我从类型耦合的角度来看这一点。如果模块B完全封装了模块A中模块C中的类型,那么绝对不要在A和C之间引入类型耦合,这只是一个例外。如果模块B已经向A公开了C的类型(即A直接依赖于C以及通过其依赖于B),那么继续抛出C的异常。谢谢。我的意思是检查异常。编辑原创帖子。谢谢。编辑了原始帖子,以提供更多关于每个模块的功能。