diff mercurial/bundle2.py @ 32232:76f9a0009b4b

pycompat: extract helper to raise exception with traceback It uses "raise excobj, None, tb" form which I think is simpler and more useful than "raise exctype, args, tb".
author Yuya Nishihara <yuya@tcha.org>
date Thu, 20 Apr 2017 22:16:12 +0900
parents ad41739c6b2b
children 9dc36df78403
line wrap: on
line diff
--- a/mercurial/bundle2.py	Mon May 01 17:23:48 2017 +0900
+++ b/mercurial/bundle2.py	Thu Apr 20 22:16:12 2017 +0900
@@ -1005,7 +1005,7 @@
             # backup exception data for later
             ui.debug('bundle2-input-stream-interrupt: encoding exception %s'
                      % exc)
-            exc_info = sys.exc_info()
+            tb = sys.exc_info()[2]
             msg = 'unexpected error: %s' % exc
             interpart = bundlepart('error:abort', [('message', msg)],
                                    mandatory=False)
@@ -1016,10 +1016,7 @@
             outdebug(ui, 'closing payload chunk')
             # abort current part payload
             yield _pack(_fpayloadsize, 0)
-            if pycompat.ispy3:
-                raise exc_info[0](exc_info[1]).with_traceback(exc_info[2])
-            else:
-                exec("""raise exc_info[0], exc_info[1], exc_info[2]""")
+            pycompat.raisewithtb(exc, tb)
         # end of payload
         outdebug(ui, 'closing payload chunk')
         yield _pack(_fpayloadsize, 0)