[Tutor] introspecting exceptions?
dyoo at hkn.eecs.berkeley.edu
Thu Feb 12 03:29:48 EST 2004
On Wed, 11 Feb 2004, Marilyn Davis wrote:
> I'm looking for a way to introspect exceptions.
> I'm hoping to find the hierarchy of exceptions somehow.
Here's a link to the documentation on the exception hierarchy:
It is possible to query for the superclasses of an object. A
quick-and-dirty way is to use the 'inspect' module:
>>> import inspect
(<class exceptions.ValueError at 0x1ccc0>, <class exceptions.StandardError
at 0x1c480>, <class exceptions.Exception at 0x1c420>)
In cases where there's a single path to the top of the class hierarchy
(that is, if the hierarchy is a tree), then doing 'getmro()' should show
us the direct path to the root.
By the way, if we have a class, and we're looking for its subclasses, we
can also look at the '__bases__' attribute:
(<class exceptions.StandardError at 0x1c480>,)
and if we're methodical about it, you can recover the exception hierarchy
by tracing down the __bases__.
But since the documentation already draws it out, you may just want to use
Hope this helps!
More information about the Tutor