onError method

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

Called when an exception was occurred during the request.

Implementation

@override
void onError(dio.DioException err, dio.ErrorInterceptorHandler handler) {
  final event = _requests[err.requestOptions];
  if (event != null) {
    _requests.remove(err.requestOptions);
    eventList.updated(
      event
        ..error = err.toNetworkError()
        ..response = err.response?.toResponse()
        ..requestTimestamp = event.requestTimestamp
        ..responseTimestamp = DateTime.now(),
    );
  } else {
    eventList.add(
      NetworkEventLog.responseNow(
        request: err.requestOptions.toRequest(),
        response: err.response?.toResponse(),
        error: err.toNetworkError(),
      ),
    );
  }

  handler.next(err);
}