public void HttpErrorMessageSetsCorrectCode() { const string code = "MyErrorCode"; var message = new HttpErrorMessage(code); Assert.AreEqual(code, message.Code); }
private ActionResult ProcessException(Exception ex) { HttpErrorMessage httpError; HttpErrors httpErrors = new HttpErrors(); if (ex is HttpException) { HttpException exCasted = (HttpException)ex; httpError = HttpErrorMessage.BuildFromDetail(exCasted.Message); httpErrors.Errors.Add(httpError); return(this.StatusCode(exCasted.ErrorCode, httpErrors)); } httpError = HttpErrorMessage.BuildFromDetail("Internal error, contact your administrator"); httpErrors.Errors.Add(httpError); Log.Error(string.Format("{0}: Internal error, contact your administrator, Unhandled exception {1}", httpError.Id, ex)); return(this.StatusCode(StatusCodes.Status500InternalServerError, httpErrors)); }
/// <summary> /// 异常统一处理 /// </summary> /// <param name="response"></param> /// <returns></returns> private async Task <Exception> ExceptiontHandler(HttpResponseMessage response) { string message = await response.Content.ReadAsStringAsync(); try { if (response.Content.Headers.ContentType.MediaType != "text/html") { HttpErrorMessage error = await response.Content.ReadAsAsync <HttpErrorMessage>(); if (error != null) { return(new HttpException((int)response.StatusCode, error.Message)); } } return(new HttpException((int)response.StatusCode, message)); } catch (Exception) { return(new HttpException((int)response.StatusCode, message)); } }