首先,我想知道是否有必要使用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);
}
答案 0 :(得分:2)
第一个问题:不,除非您想将错误输入日志&#39;
第二个问题:
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;
}