> So maybe the plan should look somethink like this: > > 1. Deprecate string exceptions. > > 2. Make Exception a new-style class. > > 3. Require exceptions to be derived from Exception. > > 4. Make the traceback an attribute of the exception object. > > 5. Implement exception chaining (as an attribute named cause on > the outer exception referencing the inner exception). > > 6. Add other exception attributes (e.g. KeyError has an attribute > key, IndexError has an attribute index, IOError has attributes > filename, errorcode etc.) I think (1) and (3) aren't absolutely necessary -- strings and classic classes would simply not have the traceback attribute. For backwards compatibility it could still be kept separate in (the per-thread equivalent of) sys.exc_traceback, but at some point, that would be phased out and traceback reporting for deprecated exception types would be reduced -- a nice incentive for moving to new-style exceptions! (Or, for classic classes, it wouldn't be okay to store the traceback on a system attribute, e.g. __traceback__.) --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4