Executes whole process of parsing arguments, running command and
        trying to catch errors.

def execute(self, *args, **options):
        """
        Executes whole process of parsing arguments, running command and
        trying to catch errors.
        """
        try:
            self.handle(*args, **options)
        except CommandError, e:
            if options['debug']:
                try:
                    import ipdb
                    ipdb.set_trace()
                except ImportError:
                    import pdb
                    pdb.set_trace()
            sys.stderr.write(colorize('ERROR: ', fg='red'))
            self.stderr.write('%s\n' % e)
            sys.exit(1)
        except Exception, e:
            if isinstance(e, IOError) and getattr(e, 'errno') == errno.EPIPE:
                sys.exit(0)
            if options['debug']:
                try:
                    import ipdb
                    ipdb.set_trace()
                except ImportError:
                    import pdb
                    pdb.set_trace()
            if options.get('traceback'):
                import traceback
                self.stderr.write(u'\n'.join((
                    '=========',
                    'TRACEBACK',
                    '=========', '', '',
                )))
                traceback.print_exc(file=self.stderr)
            sys.stderr.write(colorize('ERROR: ', fg='red'))
            self.stderr.write('%s\n' % e)
            sys.exit(1)