code: def _call(self, stream, func):
          
          try:
              func(self)
          except Exception:
              LOG.exception('%r crashed', stream)
              stream.on_disconnect(self)
docs: Call `func(self)`, catching any exception that might occur, logging it,
          and force-disconnecting the related `stream`.