0

ユーザーのリクエスト中に発生するエラーには 2 種類あると思います。

{1} : システム エラー (例外、致命的なエラー、警告、通知など)
{2} : ユーザー制御エラー (ユーザーが間違ったことを行い、通常は検証中に発生します)

通常、レポート{1}は比較的単純です。ほとんどの人は、エラー ページまたは通知を表示するだけです。{2}の場合は異なります。

Yii と Rails、およびその他のフレームワークには、モデル内の各属性に対してバリデーターを指定できる検証スキームが用意されています。検証中、バリデーターは指定された属性を検証し、マップ形式でエラーを報告します: attributeName => エラーの配列。

アプリケーションでは、サービス層のサービスは他のサービスのロジックとドメイン モデルのロジックに依存する場合があるため、その属性と検証のセットもこれらの外部サービスとドメイン モデルに依存する場合があります。

たとえば、ユーザー登録サービスは属性「username」と「password」を所有し、そのロジック ルールは、ユーザー名の最大長とパスワードの最大長を検証する際のユーザーのロジック ルールに依存する場合があります。

私の質問は、依存関係の多くの層を通してこれらの属性をどのように検証し、エラーをユーザーに報告するかということです。

4

1 に答える 1

0

それほど難しいことではありません。モデル検証エラーのほとんどは、何らかの形式のクライアント側検証を使用してクライアント側で処理できます。たとえば、そのためにclient_side_validation gem を使用できます。これらのエラーを通知またはアラートとしてレンダリングすることもできます。

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

質問に戻って、複数の例外処理レイヤーを使用できます。レイヤーの設定は、実装する機能によって異なります。たとえば、新しいユーザーを作成するときに最初に確認することは、データの有効性です。また、アプリケーション全体の例外ハンドラを持つことができ、これらの例外ハンドラのそれぞれがそこに持つことができますown error reporting mechanisms。したがって、それはシナリオに依存します。

于 2012-11-24T17:12:58.640 に答える