0

我相信在用户请求期间可能会发生两种类型的错误。

{1}:系统错误(异常、致命错误、警告、通知等)
{2}:用户控制错误(用户做错了什么,通常发生在验证期间)

通常报告{1}相对简单。大多数人只会显示错误页面或通知。{2}的情况不同。

Yii 和 Rails 以及其他一些框架提供了一个验证方案,您可以在其中为模型中的每个属性指定验证器。在验证期间,验证器将验证指定的属性并以映射形式报告错误:attributeName => 错误数组。

在应用程序中,服务层中的服务可能依赖于其他服务的逻辑和域模型的逻辑,因此其属性集和验证也可能依赖于这些外部服务和域模型。

例如,用户注册服务拥有“用户名”和“密码”属性,其逻辑规则可能依赖于用户验证用户名最大长度和密码最大长度的逻辑规则。

所以我的问题是,我们如何通过多层依赖来验证这些属性并将错误报告给用户。

4

1 回答 1

0

它不是那么困难。您可以使用某种形式的客户端验证在客户端处理大多数模型验证错误。例如,您可以为此使用client_side_validation gem。您可以将这些错误呈现为通知或警报,也可以如下所示

@user.errors.full_messages.join('. ')

现在回到您的问题,您可以进行多层异常处理。层的偏好取决于您正在实现的功能。例如,在创建新用户时,您首先要检查的是数据有效性。您还可以拥有应用程序范围的异常处理程序,并且这些异常处理程序中的每一个都可以拥有own error reporting mechanisms。所以它只取决于场景。

于 2012-11-24T17:12:58.640 回答