0

まず、ログにエラーを入力できるように、try catch ブロックで DAL にアクセスする linq ステートメントが必要かどうかを知りたいです。次に、次のコードがありますが、ご覧のとおり、動的オブジェクトを返しています 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

最初の質問: いいえ、「エラーをログに入力」したい場合を除きます。

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 に答える