使用MVC控制器中的错误处理

时间:2010-05-04 14:46:41

标签: c# asp.net asp.net-mvc

在操作方法中执行错误处理和记录或在控制器内处理OnException方法是否有意义。一种方法是在所有动作方法中编写try / catches,即使没有任何事情可以从错误中恢复。在控制器级别处理此操作将允许记录和重定向到错误处理程序页面,而无需在所有操作方法中编写try / catches。

哪种方法最有意义?以下是动作方法中try / catches的示例代码。

        [HttpPost]
        public ActionResult Delete(int id)
        {
            using (new Tracer("Project Controller"))
            {
                try
                {
                    Logger.Write("Deleting project");
                    projService.DeleteProject(id);
                    TempData["message"] = "Project Deleted successfully";
                }
                catch (System.Exception ex)
                {
                    HandleException(ex, "Project could not be deleted.");
                }
                return RedirectToAction("List");
            }
        }

1 个答案:

答案 0 :(得分:1)

HandleError属性已经开始了。

我建议您将其子类化或查看其实现以提出您的自定义。这很简单。

HandleErrorAttribute.cs