0

首先,我想知道是否有必要让 linq 语句在 try catch 块中访问 DAL,以便您可以将错误输入到日志中。其次,我有以下代码,但如您所见,它正在返回一个动态对象 new {s.ID,s.Name}。我想知道我应该如何将这些表达式放在 try catch 块中。

是否应该将包括 return 语句的整个块放在 try catch 块中,或者我应该创建一个自定义对象,并且只将填充自定义对象的初始化代码放在 try catch 块中,如果没有抛出异常,则返回这个自定义对象。

using (var rep = new Repository<Profile>())
            {
                var vals = rep.FindWhere(p => p.ProjectID == projectID)
                              .OrderBy(p => p.Name)
                              .Select(
                                  s => new
                                      {
                                          s.ID,
                                          s.Name
                                      }).ToList();
                return Json(vals, JsonRequestBehavior.AllowGet);
            }
4

1 回答 1

2

第一个问题:不,除非您想“将错误输入日志”

第二个问题:

try
{
    using (var rep = new Repository<Profile>())
                {
                    var vals = rep.FindWhere(p => p.ProjectID == projectID)
                                  .OrderBy(p => p.Name)
                                  .Select(
                                      s => new
                                          {
                                              s.ID,
                                              s.Name
                                          }).ToList();
                    return Json(vals, JsonRequestBehavior.AllowGet);
                }
} 
catch(Exception ex)
{
   // use ex here
   ErrorLog.Add(ex);

   // return whatever makes sense for you clientside
   return Json(false, JsonRequestBehavior.AllowGet);

   // or just throw exception and use error callback in js
   throw;
}
于 2013-05-13T10:48:31.797 回答