C# 抛出业务异常
为了调用支付网关等外部服务,我创建了一个提供者程序集,如:MyCompany.Providers.Braintree,它封装了与服务调用相关的所有逻辑。它的工作原理基本上是通过,它包含在自己的组件中 假设提供者有一个“DoPayment”方法,该方法调用网关上的服务,该服务返回两个状态以及一条正文消息:C# 抛出业务异常,c#,exception,design-patterns,exception-handling,C#,Exception,Design Patterns,Exception Handling,为了调用支付网关等外部服务,我创建了一个提供者程序集,如:MyCompany.Providers.Braintree,它封装了与服务调用相关的所有逻辑。它的工作原理基本上是通过,它包含在自己的组件中 假设提供者有一个“DoPayment”方法,该方法调用网关上的服务,该服务返回两个状态以及一条正文消息: 代码111->付款成功 代码222->资金不足 代码333->未知收款人 当支付未成功完成时,提供商是否应该抛出“业务”异常,或者服务是否应该返回一个封装网关返回内容的类型 我一直选择在这种
- 代码111->付款成功
- 代码222->资金不足
- 代码333->未知收款人
你们是干什么的?你自己回答了这个问题。这是一个定义业务逻辑,结果是一个定义系统状态,因此,没有异常的原因。但是是否有某种模式定义了一般上下文中异常的使用?是的,Microsoft有指导原则。与您相关的部分是:“不要将异常用于正常或预期的错误,或用于正常的控制流。”是的,我知道,但异常是MS stack特有的,当然必须有一些更广泛的一般规则