[Python-Dev] except Exception as err, tb [was: with_traceback]
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