Exemplo n.º 1
0
        /// <summary>
        /// Handles exception of type ResponseExceptionBase and returns response to client.
        /// </summary>
        /// <param name="context">Instance of http context.</param>
        /// <param name="e">Instance of catched exception.</param>
        /// <returns>Http response on client side.</returns>
        private static Task HandleAppException(HttpContext context, ResponseExceptionBase e)
        {
            context.Response.StatusCode  = (int)e.Code;
            context.Response.ContentType = "application/json";
            string body = JsonConvert.SerializeObject(new { message = e.Message });

            return(context.Response.WriteAsync(body));
        }
Exemplo n.º 2
0
        /// <summary>
        ///     业务异常的处理
        /// </summary>
        /// <param name="ex"></param>
        /// <param name="context"></param>
        private void ProcessBusinessException(ResponseExceptionBase ex, ExceptionContext context)
        {
            const HttpStatusCode statusCode = (HttpStatusCode)288;

            string exMessage;
            int    errorCode;

            if (ex is StringResponseException)
            {
                errorCode = ex.ErrorCode == 0 ? int.MaxValue : ex.ErrorCode;
                exMessage = ex.Message;
            }
            else
            {
                errorCode = ex.ErrorCode;
                //var message = _enumDescriptionService.GetDescriptionValue(ex.ErrorCode);
                exMessage = string.Empty;
            }

            context.HttpContext.Response.StatusCode = (int)statusCode;
            _logger.LogInformation(errorCode, "发生业务异常 {0} {1}", errorCode.ToString(), exMessage);
            context.Result = new JsonResult(new ApiResult(errorCode, exMessage), JsonSerializerSettings);
        }