docs: def _warning(self, msg, node_id, ex, *args, **kwargs):
          """
          Handles the error messages.
  
          .. note:: If `self.raises` is True the dispatcher interrupt the dispatch
             when an error occur, otherwise it logs a warning.
          """
  
          raises = self.raises(ex) if callable(self.raises) else self.raises
  
          if raises and isinstance(ex, DispatcherError):
              ex.update(self)
              raise ex
  
          self._errors[node_id] = msg % ((node_id, ex) + args)
          node_id = '/'.join(self.full_name + (node_id,))
  
          if raises:
              raise DispatcherError(msg, node_id, ex, *args, sol=self, **kwargs)
          else:
              kwargs['exc_info'] = kwargs.get('exc_info', 1)
              log.error(msg, node_id, ex, *args, **kwargs)