public InternalErrorResponse GetErrors <TException>(TException exception) where TException : Exception { if (exception == null) { throw new ArgumentNullException(nameof(exception)); } var userError = _errorProvider.ExtractErrorsFor(exception, ErrorProviderOptionsFactory.ExcludeDetailedErrors(_options)); var message = _errorMessageFormatter.FormatErrorMessages(userError); var statusCode = _responseCodeProvider.GetHttpStatusCode(exception); if (_options.ErrorLevelOfDetails == LevelOfDetails.StandardMessage) { return(new InternalErrorResponse(message, statusCode)); } if (_options.ErrorLevelOfDetails == LevelOfDetails.UserErrors) { return(new InternalErrorResponse(message, statusCode, userError)); } var detailedError = _errorProvider.ExtractErrorsFor(exception, ErrorProviderOptionsFactory.IncludeDetailedErrors(_options)); return(new InternalErrorResponse(message, statusCode, userError, detailedError)); }