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