假设我有一个可以将 Persons 存储在数据库中的 Web 应用程序。每个人都必须有一个唯一的电子邮件地址(或用户名或其他)。如果用户尝试使用已存在的电子邮件地址添加人员,则应返回带有错误消息的表单(就像在典型的验证失败期间一样)。
这种错误是如何最典型地从服务层冒泡到 Controller 然后到 View 的?服务方法是否应该抛出异常以供 Controller 捕获,或者返回一个值或某种结果对象?
如果我最终想使用我的服务层来生成 Web 服务,这是否会改变我的处理方式?
任何建议或最佳实践/示例应用程序的链接将不胜感激。
最佳答案
基本上有两种方法可以做到这一点:异常和返回业务规则验证的结果。每种方式都有其优点和缺点,但基本上:
异常(exception):
业务规则验证:
我认为这在很大程度上取决于哪种方法更适合的应用程序,因此没有简单的答案。长期以来,我成功地将异常用于业务规则,现在我倾向于利用第二种方法。
关于web-applications - 应如何在 Web 应用程序中处理业务错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/871050/