[Python-Dev] except Exception as err, tb [was: with_traceback] (original) (raw)

Jim Jewett jimjjewett at gmail.com
Fri Mar 2 21:35:10 CET 2007


Guido van Rossum wrote:

Since this can conceivably be going on in parallel in multiple threads, we really don't ever want to be sharing whatever object contains the head of the chain of tracebacks since it mutates at every frame bubble-up.

So (full) exceptions can't be unitary objects.

In theory, raising an already-instantiated instance could indicate "no traceback", which could make pre-cooked exceptions even lighter.

Otherwise, there is no way to make exceptions reference their traceback directly. Using a property which depends on both the exception and the frame asking (catching frame? thread?) is ... probably worse than keeping them separate.

>>> except MyException as err, tb

isn't so awful, and makes it clear that the traceback is no longer needed after the more typical

>>> except MyException as err
...         # no raise statements needing a context or cause

-jJ



More information about the Python-Dev mailing list