private Task HandleExceptionsAsync(HttpContext context, Exception ex) { context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; context.Response.ContentType = "application/json"; try { ErrorType errorType = GenerateErrorHandler(ex); if (errorType.IsError()) { context.Response.StatusCode = errorType.Get().StatusCode; _logger.Log(ex, errorType.Get().ResultCode); return(errorType.GenericResponse(context, ErrorDetailResponseFactory.CreateKnownErrorDetails(ex.Message, errorType.Get().ResultCode, errorType.Get().Title))); } _logger.Log(ex, errorType.Get().ResultCode); return(errorType.GenericResponse(context, ErrorDetailResponseFactory.CreateGenericErrorDetails(ex.Message, context.Response.StatusCode, ex))); } catch (Exception e) { _logger.Log(ex); return(HandleError.WithDefaultJsonConverter(context, ErrorDetailResponseFactory.CreateGenericErrorDetails(e.Message, context.Response.StatusCode, e))); } }