在编写有关异常的反腐败层时,推荐的做法是什么?
可以公平地说异常应该被包装/屏蔽,因为系统的任何其他接口(interface)方面(又名有界上下文)正在集成?
最佳答案
这里有一个反腐败层,以防止外部系统的惯用语和行为泄漏到您的限界上下文中。因此,将由此产生的异常包装成对您的 BC 有意义的异常似乎是个好主意。
这样做还迫使您考虑可能发生在反腐败层内的错误情况,并使您的应用程序更加健壮。顺便说一句,并非所有在 ACL 内发生的错误都可以/将由直接的第三方系统客户端异常引起。您还必须解决成功但不连贯的结果、以不同于异常的其他方式发出的错误信号(如意外的 HTTP 响应状态)等。
请注意,包装异常并不意味着截断它——我们需要保留原始错误中的所有信息。围绕异常的所有良好实践仍然有效。
关于exception-handling - 反腐败层(ACL)中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297687/