Exemplo n.º 1
0
        public void HttpErrorMessageSetsCorrectCode()
        {
            const string code = "MyErrorCode";

            var message = new HttpErrorMessage(code);

            Assert.AreEqual(code, message.Code);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        /// <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));
            }
        }