onError method

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

The callback will be executed on error.

If you want to continue the error , call handler.next.

If you want to complete the response with some custom data directly, you can resolve a Response object with handler.resolve and other error interceptor(s) will be skipped.

If you want to complete the response with an error message directly, you can reject a DioError object with handler.reject, and other error interceptor(s) will be skipped.

Implementation

@override
void onError(DioError err, ErrorInterceptorHandler handler) {
  if (err.response != null) {
    _saveCookies(err.response!).then((_) => handler.next(err)).catchError((e, stackTrace) {
      var _err = DioError(
        requestOptions: err.response!.requestOptions,
        error: e,
      );
      _err.stackTrace = stackTrace;
      handler.next(_err);
    });
  } else {
    handler.next(err);
  }
}