0

このメソッドは、私のビジネスサービスでasp.netmvcコントローラーから呼び出されます。例外が発生した場合、または発生しなかった場合は、Resultオブジェクトを返す必要があります。

結果のクラスは実験的なものであり、おそらくもっと良いものがあります。

特別な例外を予期しない場合、例外処理をどのように行いますか。

javascriptファイルの例外からのエラーメッセージをユーザーに表示したいだけです

成功がfalseを返した場合は、メッセージボックスを使用します。

 public Result CreateTestplan(Testplan testplan)
 {
    using (var con = new SqlConnection(_connectionString))
    using (var trans = new TransactionScope())
    {
       con.Open();

       _testplanDataProvider.AddTestplan(testplan);
       _testplanDataProvider.CreateTeststepsForTestplan(testplan.Id, testplan.TemplateId);
       trans.Complete();
   }
  }

class Result
{
   public bool Success {get;set;}
   public string Error {get;set;}
}
4

1 に答える 1

2

トランザクション全体をTry/Catchブロックでラップし、例外をキャッチします。catchブロック内で、結果のエラーテキストを例外テキストに設定します。コードでの表示は次のとおりです。

 public Result CreateTestplan(Testplan testplan)
 {
    Result res = new Result();
    try
    {
    using (var con = new SqlConnection(_connectionString))
    using (var trans = new TransactionScope())
    {
       con.Open();

       _testplanDataProvider.AddTestplan(testplan);
       _testplanDataProvider.CreateTeststepsForTestplan(testplan.Id, testplan.TemplateId);
       trans.Complete();
       res.Success = true;
       res.Error = string.Empty;
   }
   }
   catch (Exception e)
   {
       res.Success = false;
       res.Error = e.Message;
   }
   return result;
  }

class Result
{
   public bool Success {get;set;}
   public string Error {get;set;}
}

もちろん、サービスは例外を飲み込むことになります。そのため、トランザクションが失敗しても、プログラムが一貫性のない状態にならないようにする必要があります。

于 2012-07-01T20:55:50.197 に答える