onError method
Called when an exception was occurred during the request.
Implementation
@override
Future<void> onError(
DioException err,
ErrorInterceptorHandler handler,
) async {
// 从 extra 中获取动态 evaluator
final dynamicEvaluator =
err.requestOptions.extra[kRetryEvaluatorKey] as RetryEvaluator?;
if (dynamicEvaluator != null) {
// 使用动态 evaluator 创建临时拦截器处理
final tempInterceptor = RetryInterceptor(
dio: dio,
logPrint: logPrint,
retries: retries,
retryDelays: retryDelays,
retryEvaluator: dynamicEvaluator,
ignoreRetryEvaluatorExceptions: ignoreRetryEvaluatorExceptions,
retryableExtraStatuses: retryableExtraStatuses,
);
return tempInterceptor.onError(err, handler);
}
// 使用默认逻辑
return super.onError(err, handler);
}