public override void OnException(HttpActionExecutedContext actionExecutedContext) { //异常信息 string error_msg = actionExecutedContext.Exception.Message; ExceptionInDB.ToInDB(actionExecutedContext.Exception); UnifiedResultEntity <string> model = new UnifiedResultEntity <string>(); model.msgbox = error_msg; actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.OK, model); base.OnException(actionExecutedContext); }
public void OnException(ExceptionContext filterContext) { Exception exception = filterContext.Exception; if (filterContext.ExceptionHandled == true) { return; } HttpException httpException = new HttpException(null, exception); ExceptionInDB.ToInDB(exception); /* * 1、根据对应的HTTP错误码跳转到错误页面 * 2、这里对HTTP 404/400错误进行捕捉和处理 * 3、其他错误默认为HTTP 500服务器错误 */ if (httpException != null && (httpException.GetHttpCode() == 400 || httpException.GetHttpCode() == 404)) { //filterContext.HttpContext.Response.StatusCode = 404; //filterContext.HttpContext.Response.WriteFile("~/HttpError/404.html"); filterContext.Result = ReturnResult(); } else { //filterContext.HttpContext.Response.StatusCode = 500; //filterContext.HttpContext.Response.WriteFile("~/HttpError/500.html"); filterContext.Result = ReturnResult(); } /*--------------------------------------------------------- * 这里可进行相关自定义业务处理,比如日志记录等 * ---------------------------------------------------------*/ //设置异常已经处理,否则会被其他异常过滤器覆盖 filterContext.ExceptionHandled = true; //在派生类中重写时,获取或设置一个值,该值指定是否禁用IIS自定义错误。 filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; }
/// <summary> /// 当操作中发生未经处理的异常时调用 /// </summary> /// <param name="filterContext"></param> protected override void OnException(ExceptionContext filterContext) { string error_msg = filterContext.Exception.Message; if (!filterContext.ExceptionHandled) { filterContext.ExceptionHandled = true; ExceptionInDB.ToInDB(filterContext.Exception); } if (WorkContext.IsHttpAjax) { WorkContext.AjaxStringEntity.msg = 0; WorkContext.AjaxStringEntity.msgbox = error_msg; filterContext.Result = Json(WorkContext.AjaxStringEntity, JsonRequestBehavior.AllowGet); } else { filterContext.Result = PromptView("500", "系统发生错误", error_msg); //if (string.IsNullOrWhiteSpace(WorkContext.UrlReferrer)) //{ //} //else //{ // PromptModel model = new PromptModel(); // model.IsAutoLink = true; // model.IsShowLink = true; // model.Status = "500"; // model.Details = error_msg; // model.Message = "系统发生错误"; // model.CountdownTime = 10; // model.CountdownModel = 10; // model.LinkUrl = WorkContext.UrlReferrer; // filterContext.Result = PromptView(model); //} } }