1

私はITの学生です。2年生です。クラスでデータを取得するため、リクエストでデータを操作するため(すべてのメソッドはここにあります)、プログラム自体の動作のために、3つのレイヤーでプログラミングすることを学びました。最初の2つがフォームではなくクラスに入るのを見て、エラーを表示する方法がわかりません。

例:Webブラウザとその背後にある他のものを使用してログインシステムを作成する必要があります。だから私はクラスにログインしますが、エラーをチェックする方法は?MessageBox.Show(error);を実行するのは正常ではなく、可能でさえないと思います。クラスからは、ものだけを返すことができますが、可能であれば、ユーザー名/IDを返したいと思います。

つまり、クラスからのデータによって引き起こされたエラーを報告するための最良/最も受け入れられている方法は何ですか?

4

3 に答える 3

1

データオブジェクトを検証し、エラー情報を返すクラスが必要です。次に、フロントエンドコードは、このクラスにデータを検証し、返されるエラーメッセージを表示するように要求できます。

var username = GetUserName();
var password = GetPassword();
var validationResult = new Validator().ValidateLogin(username, password);
if(validationResult.ErrorMessage != null) {
    MessageBox.Show(validationResult.ErrorMessage);
} else {
    // Do what you would have done.
}

予想されるロジックフローの範囲外のエラーが発生した場合は、例外をスローする必要があります。

于 2012-04-15T02:06:03.613 に答える
1

例外を使用できます。例外をスローするだけです。例外をどうするかは呼び出し元次第です。

class Login
{
  public Login()
  {

  }

  public bool CheckLogin(string userName, string password)
  {
   // Do your validation here. 
   If every thing goes fine 
     return True.
   else
     throw Exception("custom message.");
  }

}

class Input  //class which takes input.
{
  Login login = new Login();

  public void TakeInput(string username, string password)
  { 
     try
     {
        login.CheckLogin(username, password);
     }
     catch(Exception ex)
     { 
       MessageBox.show(ex.message);
     } 
  }  

}
于 2012-04-15T02:19:24.677 に答える