フォームにエラー メッセージを表示するために GUI レイヤーで使用DataAnnotations
していますが、サービス レイヤーからの例外を処理する方法と、例外が発生した場合にユーザーに何を表示するかについていくつか質問があります。
サービス層と通信するには、リクエストとレスポンス クラスを使用します。例えば:
public class RegisterUserRequest
{
public string Username { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
セッター メソッド内のリクエスト クラスで null をチェックする必要がありますか? または、サービスでこれを行う必要がありますか? ArgumentNullException
リクエスト セッター メソッドとレスポンス セッター メソッドの両方でこれを行い、パラメーターが null の場合はスローするのが理にかなっていると思います。
私のサービスクラスではInvalidOperationException
、たとえばユーザー名またはパスワードが無効な場合にスローします。これはスローする正しい例外ですか?
私が持っているもう 1 つの質問は、すべての例外をキャッチする必要があるかどうかです。キャッチする場合、例外についてユーザーに何を伝えればよいでしょうか? たとえば、一部のプロパティが null の場合、ArgumentNullException
. しかし、これについてユーザーに知らせる必要がありますか?
ユーザー名が無効な場合、InvalidOperationException
. これは、少なくとも 3 文字か何かを使用する必要があることをユーザーに伝えるため、ユーザーに表示したいものです。
InvalidOperationException
からのエラーメッセージを使用してユーザーに表示し、「おっと、何か問題が発生しました」などの他の例外が発生したときに標準エラービューにリダイレクトする必要があると思います。