onError method
Called when an exception was occurred during the request.
Implementation
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
if (!enabled ||
(filter != null &&
!filter!(
err.requestOptions, FilterArgs(true, err.response?.data)))) {
handler.next(err);
return;
}
final triggerTime = err.requestOptions.extra[_timeStampKey];
if (error) {
if (err.type == DioExceptionType.badResponse) {
final uri = err.response?.requestOptions.uri;
int diff = 0;
if (triggerTime is int) {
diff = DateTime.timestamp().millisecondsSinceEpoch - triggerTime;
}
_printBoxed(
header:
'DioError ║ Status: ${err.response?.statusCode} ${err.response?.statusMessage} ║ Time: $diff ms',
text: uri.toString());
if (err.response != null && err.response?.data != null) {
logPrint('╔ ${err.type.toString()}');
_printResponse(err.response!);
}
_printLine('╚');
logPrint('');
} else {
_printBoxed(header: 'DioError ║ ${err.type}', text: err.message);
}
}
handler.next(err);
}