/// <summary> /// 集約エラー /// </summary> /// <param name="sender">イベントセンダー</param> /// <param name="e">イベント引数</param> protected void Application_Error(object sender, EventArgs e) { this.MyApplication_Error(sender, e); var ex = Server.GetLastError(); if (ex == null) { return; } var messageSvc = DI.Container.Resolve <MessageService>(); ErrorModel model = null; //認証エラー model = ErrorModel.Create(messageSvc, GetException <TemplateAuthorizeException>(ex)); if (model == null) { //検証エラー model = ErrorModel.Create(messageSvc, GetException <TemplateValidationException>(ex)); } if (!string.IsNullOrEmpty(model?.Controller)) { Response.RedirectToRoute(model); } if (model != null) { Server.ClearError(); } }
public static ErrorResult BuildErrorResponse( HttpStatusCode statusCode, string message, string description, Exception ex = null, string additionalInfoUrl = null) { var errorResponse = new ErrorResponse { Errors = new List <ErrorModel> { ErrorModel.Create(statusCode, message, description, ex, additionalInfoUrl) } }; return(new ErrorResult((int)statusCode, errorResponse)); }
private async Task HandleExceptionAsync(HttpContext context, Exception exception) { string response = null; if (exception is OperationCanceledException) { _logger.LogDebug(exception, "Request was cancelled."); return; } if (exception is CoinNotExistsException) { _logger.LogError(exception, "Coin does not exist"); context.Response.StatusCode = (int)HttpStatusCode.NotFound; response = JsonConvert.SerializeObject(ErrorModel.Create(exception.Message)); } else { _logger.LogError(exception, "Something really bad occurred. We shouldn't ever return 500."); context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; response = JsonConvert.SerializeObject(ErrorModel.Create("Internal server error")); } await context.Response.WriteAsync(response); }