I'm trying to come up with a scheme for organizing exceptions in my application.
Currently, I'm using a base class which knows how to look up the text of a specific error in a database table, keyed on the error class name. The base class looks like this: class ApplicationException(Exception): """Base class for application-specific errors.""" def get_message(self): """Return the error message associated with this class name.""" class_name = self.__class__.__name__ return UserMessage.objects.get(key=class_name).text And then I define a bunch of subclasses which all have different names: class QuestionTooShortError(NetIDAppsError): """User entered a security question which is too short.""" pass class QuestionTooLongError(NetIDAppsError): """User entered a security question which is too long.""" pass This scheme works, but I'd like to make it more streamlined. Specifically, I'd like to group the classes underneath a parent class, like so: class Question(ApplicationException): class TooShort(ApplicationException): pass class TooLong(ApplicationException): pass This will make it easier in the future for organizing lots of sub-errors. My problem is this: the get_message() method in the base class only knows the current class name, i.e. "TooShort" or "TooLong". But that's not enough; I also need to know the outer class name, i.e. "Question.TooShort" or "Question.TooLong". How do I get the outer class name? Thanks, -- John Gordon A is for Amy, who fell down the stairs gor...@panix.com B is for Basil, assaulted by bears -- Edward Gorey, "The Gashlycrumb Tinies" -- http://mail.python.org/mailman/listinfo/python-list