ApiException constructor
ApiException({
- required HttpStatusCodeInfo httpStatusInfo,
- String? endpoint,
- String? method,
- Map<
String, dynamic> requestHeaders = const {}, - Object? requestBody,
- Map<
String, dynamic> responseHeaders = const {}, - Object? responseBody,
- String? userMessage,
- String? devMessage,
- Object? cause,
- StackTrace? stack,
- Map<
String, dynamic> metadata = const {}, - Severity? severity,
- bool isReportable = true,
Creates an API exception enriched with normalized HTTP status metadata.
Implementation
ApiException({
required this.httpStatusInfo,
String? endpoint,
String? method,
Map<String, dynamic> requestHeaders = const {},
Object? requestBody,
Map<String, dynamic> responseHeaders = const {},
Object? responseBody,
String? userMessage,
String? devMessage,
super.cause,
super.stack,
Map<String, dynamic> metadata = const {},
Severity? severity,
super.isReportable,
}) : super(
userMessage: userMessage ?? httpStatusInfo.statusUserMessage,
devMessage: devMessage ??
'HTTP ${httpStatusInfo.statusCode} ${method ?? ''} ${endpoint ?? ''}'
.trim(),
metadata: {
'http': {
...httpStatusInfo.toMap(),
if (endpoint != null) 'endpoint': endpoint,
if (method != null) 'method': method,
if (requestHeaders.isNotEmpty) 'requestHeaders': requestHeaders,
if (requestBody != null) 'requestBody': requestBody,
if (responseHeaders.isNotEmpty)
'responseHeaders': responseHeaders,
if (responseBody != null) 'responseBody': responseBody,
},
...metadata,
},
severity: severity ?? httpStatusInfo.errorSeverity,
);