[Python-Dev] with_traceback (original) (raw)

James Y Knight foom at fuhm.net
Thu Mar 1 19:51:54 CET 2007


On Mar 1, 2007, at 3:27 AM, Greg Ewing wrote:

James Y Knight wrote:

The traceback won't necessarily be useful, Almost completely useless, I would have thought. The traceback is mostly used to find out where something went wrong, not where it went right (i.e. successful creation of the exception).

The advantages are that it's an easily understandable and explainable
behavior, and the traceback points you (the programmer) to the exact
location where you went wrong: creating the exception at module level.

Creating an exception with a non-exceptional stacktrace isn't always
useless: sometimes you have exceptions where you know you never care
about the stacktrace (internal flow control/etc).

This would be a major and surprising change to Python users.

It's only a major change if you don't raise the exception in the same
place you create it. (which other people are claiming is extremely
rare).

It would also be considerably more expensive to implement than the current scheme, because it would require copying the entire stack, instead of just linking stack frames together as they are unwound during the search for an exception handler.

Yes of course, you're right, I withdraw the proposal. I had forgotten
that python doesn't currently save the entire stack, only that
between the 'raise' and the 'except'. (I had forgotten, because
Twisted's "Failure" objects do save and print the entire stacktrace,
both above and below the catch-point).

James



More information about the Python-Dev mailing list