[Python-Dev] except Exception as err, tb [was: with_traceback]
Brett Cannon
brett at python.org
Fri Mar 2 21:46:22 CET 2007
On 3/2/07, Jim Jewett <jimjjewett at gmail.com> wrote:
> 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
>
Just because it popped in my head, I think::
except Exception as exc with tb:
...
reads better.
-Brett
More information about the Python-Dev
mailing list