code: def run_wrap(self, args):
          
          self.fire_event('prerun', args)
          self.prerun(args)
          try:
              if self.session.allow_pager and self.use_pager:
                  desc = 'Command\: %s' % '-'.join(self.prog.split())
                  with paging.pager_redirect(desc, **self.get_pager_spec()):
                      result = self.run(args)
              else:
                  result = self.run(args)
          except (SystemExit, Exception) as e:
              self.postrun(args, exc=e)
              self.fire_event('postrun', args, exc=e)
              raise e
          else:
              self.postrun(args, result=result)
              self.fire_event('postrun', args, result=result)
              return result
docs: Wrap some standard protocol around a command's run method.  This
          wrapper should generally never capture exceptions.  It can look at
          them and do things but prerun and postrun should always be symmetric.
          Any exception suppression should happen in the `session.execute`.