public override void Handle(ExceptionHandlerContext context) { bool shouldHandle = this.ShouldHandle(context); if (!shouldHandle) { return; } ErrorContext errorContext = null; try { errorContext = ErrorContextService.Resolve(context); var model = new ErrorViewModel(errorContext, context.RequestContext.RouteData.Values); var jsonModel = model.ToJson(); var response = context.Request.CreateResponse(errorContext.HttpStatusCode, jsonModel); context.Result = new ResponseMessageResult(response); } finally { ErrorContextService.Log(CurrentLogger, errorContext); } }