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) async {

  if (err.response != null) {
    InterceptorManager.instance.onResponseTime(err.response!.requestOptions.hashCode, DateTime.now());
    InterceptorManager.instance.onSave(setData(err.response!, err.response!.requestOptions)..error = true);
  }else{
    InterceptorManager.instance.onSave(HttpTransaction()
      ..id = err.requestOptions.hashCode
      ..requestTime = InterceptorManager.instance.requestTime[err.requestOptions.hashCode]
      ..responseTime = InterceptorManager.instance.responseTime[err.requestOptions.hashCode]
      ..uri = err.requestOptions.uri
      ..error = true);
  }
  handler.next(err);
}