在MVC中异常处理的最佳方式是什么(Base_Controller vs CustomHandleErrorAttrib
本文关键字:Base Controller CustomHandleErrorAttrib vs 是什么 方式 MVC 异常处理 最佳 | 更新日期: 2023-09-27 18:06:08
我在三个模型中做MVC异常处理。
public class CustomHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
//logging
}
}
和
public class Base_Application : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
//Logging
}
}
和
public class Base_Controller : Controller
{
protected override void OnException(ExceptionContext filterContext)
{
//Logging;
}
}
如果我从代码中抛出一个示例异常,它被CustomHandleErrorAttribute
和Base_Controller
捕获。
和
在Base_Application
中,我记录的异常与Elmah记录的异常相同。
所以我想知道在所有情况下的最佳方法
如果你有一个基础控制器,我建议使用这种方法
public class CustomHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
//logging
}
}
用自定义属性
装饰基础控制器[CustomHandleError]
public class Base_Controller : Controller
{
}
所以你也可以重用这个属性,如果你添加一个控制器,不需要一个基础控制器在未来。
还可以通过这篇精彩的文章来决定是否使用基本控制器或ActionFilter。
Application_Error
事件可用于捕获未被页级错误处理程序捕获的错误。