handleDioError method

LLMError handleDioError(
  1. DioException e
)

Handle Dio exceptions with consistent error mapping

Implementation

LLMError handleDioError(DioException e) {
  final error = DioErrorHandler.handleDioError(e, providerName);

  // Log the error with provider context
  switch (e.type) {
    case DioExceptionType.connectionTimeout:
    case DioExceptionType.sendTimeout:
    case DioExceptionType.receiveTimeout:
      _logger.warning('$providerName timeout error: ${error.message}');
      break;
    case DioExceptionType.badResponse:
      final statusCode = e.response?.statusCode;
      final data = e.response?.data;
      _logger.warning('$providerName bad response: $statusCode, data: $data');
      break;
    case DioExceptionType.connectionError:
      _logger.warning('$providerName connection error: ${error.message}');
      break;
    case DioExceptionType.badCertificate:
      _logger.warning('$providerName SSL error: ${error.message}');
      break;
    default:
      _logger.warning('$providerName error: ${error.message}');
      break;
  }

  return error;
}