在 DDD 设计的 ASP.NET MVC2 Web 应用程序中,关于错误处理的“最佳实践”是什么?例如,让我们看一下 Web 应用程序最常见的方面,即登录:
一些域对象最终
登录或拒绝用户,以及
重定向到网络的其他部分
接口(interface)根据需要。就我而言,它是
对不同 UserTasks 的几次调用
IsLoggedIn() 或 LogIn() 等方法,
加上一些 RedirectToAction。
协调相关领域
对象服务,例如
SecurityService 及下域
对象,例如调用
SecurityService.ValidateUser() 或
检查 User.IsUserInactive()。
坐标
认证/授权
服务。类似于一个
MembershipProvider,没有
超重行李。
贫血,因为它有各种
用户特定的方法,例如
检查的 IsuUserInactive()
IsDeleted、IsLockedOut 或如果用户
介于 FromDt 和 ThruDt 之间。
您如何冒泡错误以使它们提供信息并且对用户没有敌意?您是否在代码中乱扔异常,然后只在 Application_Error() 中处理它们?例如,ValidateUser() 应该在密码为空时抛出 ArgumentNullException(),在密码不正确时抛出 AuthenticationException(),还是返回 bool = false?如果是后者,您如何告知用户导致验证失败的原因?
最佳答案
我假设您根据我看到的命名约定使用 WhoCanHelpMe/S#arp 架构?如果是这样,我强烈推荐看看 this article它演示了更清洁的应用程序服务层的实现。看看ActionConfirmation
从服务层返回的结果;我们发现这是从任务层返回不太严重的错误结果的理想方法。
关于asp.net-mvc-2 - 处理 DDD 风格的 ASP.Net MVC2 Web 应用程序中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542425/