0

这个方法是在我的业务服务中从一个 asp.net mvc 控制器调用的。如果发生异常,我需要返回一个 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 块中,将 Result 上的 Error 文本设置为异常文本。下面是它在代码中的样子:

 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 回答