# HG changeset patch # User Lee Cantey # Date 1311347027 25200 # Node ID 58f97dcbd55085ebf72add79e71c456eb0ac0fff # Parent 28edd65000d984b381a85fd847cfda8efeabd8a8 hooks: use python 2.4 compatible exception handling diff -r 28edd65000d9 -r 58f97dcbd550 mercurial/hook.py --- a/mercurial/hook.py Fri Jul 22 17:11:35 2011 -0500 +++ b/mercurial/hook.py Fri Jul 22 08:03:47 2011 -0700 @@ -65,26 +65,27 @@ '("%s" is not callable)') % (hname, funcname)) try: - # redirect IO descriptors the the ui descriptors so hooks that write - # directly to these don't mess the command protocol when running through - # the command server - old = sys.stdout, sys.stderr, sys.stdin - sys.stdout, sys.stderr, sys.stdin = ui.fout, ui.ferr, ui.fin + try: + # redirect IO descriptors the the ui descriptors so hooks + # that write directly to these don't mess up the command + # protocol when running through the command server + old = sys.stdout, sys.stderr, sys.stdin + sys.stdout, sys.stderr, sys.stdin = ui.fout, ui.ferr, ui.fin - r = obj(ui=ui, repo=repo, hooktype=name, **args) - except KeyboardInterrupt: - raise - except Exception, exc: - if isinstance(exc, util.Abort): - ui.warn(_('error: %s hook failed: %s\n') % - (hname, exc.args[0])) - else: - ui.warn(_('error: %s hook raised an exception: ' - '%s\n') % (hname, exc)) - if throw: + r = obj(ui=ui, repo=repo, hooktype=name, **args) + except KeyboardInterrupt: raise - ui.traceback() - return True + except Exception, exc: + if isinstance(exc, util.Abort): + ui.warn(_('error: %s hook failed: %s\n') % + (hname, exc.args[0])) + else: + ui.warn(_('error: %s hook raised an exception: ' + '%s\n') % (hname, exc)) + if throw: + raise + ui.traceback() + return True finally: sys.stdout, sys.stderr, sys.stdin = old if r: