<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run_wrap(self, args):
 """ 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`. """

        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