/// <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)); }
/// <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); }