在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在项目中异常处理非常重要,我们在mvc中有人说用application_error事件中处理异常处理 ,但是application_error产生的所所有异常,假如要生成日志的话肯定日志文件会很大,而且要想在程序中application_error能执行必须将默认的HandleErrorAttribute属性注册去除掉,否则将不会执行application_error 第一种做法: protected void Application_Start() { AreaRegistration.RegisterAllAreas(); //RegisterGlobalFilters(GlobalFilters.Filters);//取消注册以执行application_error事件 RegisterRoutes(RouteTable.Routes); }
protected void Application_Error() { //异常处理 } 第二种做法: application_start事件中注册一个异常处理 首先添加一个ExceptionText类,其继承自HandleErrorAttribute(表示一个特性,该特性用于处理由操作方法引发的异常),然后重写HandleErrorAttribute的OnException(在发生异常时调用)方法 public class ExceptionText : HandleErrorAttribute { /// <summary> /// 触发异常时调用的方法 /// </summary> /// <param name="filterContext"></param> public override void OnException(ExceptionContext filterContext) { //处理异常 } } 然后在Global.asax里的RegisterGlobalFilters(默认有)注册一个ExceptionText public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ExceptionText());//注册 filters.Add(new HandleErrorAttribute()); } 在Application_Start中调用 protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters);//调用 RegisterRoutes(RouteTable.Routes); } |
请发表评论