onError method
Called when an exception was occurred during the request.
Implementation
@override
void onError(
DioException err,
ErrorInterceptorHandler handler,
) {
if (level.isNone) return handler.next(err);
final requestId = err.requestOptions.extra['requestId'] ?? 'unknown';
_log('┌──── Error [$requestId] ──────────────────────────────');
_log('│ ${err.requestOptions.method} ${err.requestOptions.uri}');
_log('│ Type: ${err.type.name}');
_log('│ Message: ${err.message}');
if (err.response != null) {
_log('│ Status: ${err.response?.statusCode}');
if (level.includesBody && err.response?.data != null) {
final data = _redactData(err.response?.data);
_log('│ Error Data: $data');
}
}
if (level.includesBody) {
_log('│ Stack Trace:');
final stackLines = err.stackTrace.toString().split('\n');
for (var line in stackLines.take(5)) {
// Show first 5 lines
_log('│ $line');
}
}
_log('└──────────────────────────────────────────────────────');
handler.next(err);
}