onError method

  1. @override
void onError(
  1. DioException err,
  2. ErrorInterceptorHandler handler
)
inherited

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);
}