Antoine Pitrou <[EMAIL PROTECTED]> added the comment:

As Amaury said, lexically nested exception handlers make re-raising
behaviour buggy. In Py3k, a workaround is to instead write:

   try:
      raise Exception("foo")
   except Exception as :
      try: raise KeyError("caught")
      except KeyError: pass
      raise e

With the slight inconvenience that the "raise e" line will be appended
to the original traceback.

If we want bare "raise" statements to work as expected after a nested
exception handler, we'll need to add proper exception stacking, for
example by adding the exception value as a member of PyTryBlock. The
effect on performance should also be measured.

__________________________________
Tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue2833>
__________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to