在操作方法中执行错误处理和记录或在控制器内处理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");
}
}