code: def _call_and_store(getter_func, data, field_name, error_store, index=None):
          
          try:
              value = getter_func(data)
          except ValidationError as err:
              error_store.store_error(err.messages, field_name, index=index)
              # When a Nested field fails validation, the marshalled data is stored
              # on the ValidationError's valid_data attribute
              return err.valid_data or missing
          return value
docs: Call ``getter_func`` with ``data`` as its argument, and store any `ValidationErrors`.
  
          :param callable getter_func: Function for getting the serialized/deserialized
              value from ``data``.
          :param data: The data passed to ``getter_func``.
          :param str field_name: Field name.
          :param int index: Index of the item being validated, if validating a collection,
              otherwise `None`.