exception-handling - 反腐败层(ACL)中的异常处理

标签 exception-handling domain-driven-design

在编写有关异常的反腐败层时,推荐的做法是什么?

可以公平地说异常应该被包装/屏蔽,因为系统的任何其他接口(interface)方面(又名有界上下文)正在集成?

最佳答案

这里有一个反腐败层,以防止外部系统的惯用语和行为泄漏到您的限界上下文中。因此,将由此产生的异常包装成对您的 BC 有意义的异常似乎是个好主意。

这样做还迫使您考虑可能发生在反腐败层内的错误情况,并使您的应用程序更加健壮。顺便说一句,并非所有在 ACL 内发生的错误都可以/将由直接的第三方系统客户端异常引起。您还必须解决成功但不连贯的结果、以不同于异常的其他方式发出的错误信号(如意外的 HTTP 响应状态)等。

请注意,包装异常并不意味着截断它——我们需要保留原始错误中的所有信息。围绕异常的所有良好实践仍然有效。

关于exception-handling - 反腐败层(ACL)中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297687/

相关文章:

python - 如何在 Python 中正确获取异常消息

java - 这个包含 close() 调用的 finally 子句的原因是什么

entity-framework - 臭名昭著的 Entity Framework ——聚合根问题

domain-driven-design - DDD : Aggregate Roots

c# - 洋葱架构 : Should we allow data annotations in our domain entities?

android - 记录后重新抛出 UncaughtExceptionHandler 异常

c# - 反射.TargetInvocationException

c# - 如何避免贫血领域模型,或何时将方法从实体转移到服务中

programming-languages - 真正的声明性语言?

java - Java 7 之前版本的 Java 中的 Catch(异常 e)