<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def run_async(self):
 """ Starts the run loop and manages exceptions and cleanup. """

        try:
            await self.run_loop_async()
        except Exception as err:  # pylint: disable=broad-except
            _logger.error("Run loop failed %r", err)

        try:
            _logger.info("Shutting down all pumps %r", self.host.guid)
            await self.remove_all_pumps_async("Shutdown")
        except Exception as err:  # pylint: disable=broad-except
            raise Exception("Failed to remove all pumps {!r}".format(err))