code: def main(self):
          
          loop = MainLoop(self.view, DEFAULT_PALETTE,
                          handle_mouse=self.handle_mouse)
          self.view.show_graphs()
          self.animate_graph(loop)
          try:
              loop.run()
          except (ZeroDivisionError) as err:
              # In case of Zero division, we want an error to return, and
              # get a clue where this happens
              logging.debug("Some stat caused divide by zero exception. Exiting")
              logging.error(err, exc_info=True)
              print(ERROR_MESSAGE)
          except (AttributeError) as err:
              # In this case we restart the loop, to address bug #50, where
              # urwid crashes on multiple presses on 'esc'
              logging.debug("Catch attribute Error in urwid and restart")
              logging.debug(err, exc_info=True)
              self.main()
          except (psutil.NoSuchProcess) as err:
              # This might happen if the stress process is not found, in this
              # case, we want to know why
              logging.error("No such process error")
              logging.error(err, exc_info=True)
              print(ERROR_MESSAGE)
docs: Starts the main loop and graph animation