Differences between revisions 3 and 4
Revision 3 as of 2003-09-06 19:13:21
Size: 1119
Editor: ip503dabc3
Comment:
Revision 4 as of 2003-09-06 19:51:18
Size: 1196
Editor: dsl254-010-130
Comment: Exceptions derive from exception. Need call parent initializer?
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Exception classes are not special; You just write an ordinary class: Derive Exception classes from Exception:
Line 13: Line 13:

  ''Do we call {{{Exception.__init__( self )}}}..?'' -- LionKimbro [[DateTime(2003-09-06T19:51:18Z)]]

Writing Exception Classes

I (LionKimbro) don't know much about writing exception classes; Here's hoping someone rewrites this better.

Derive Exception classes from Exception:

   1 class HostNotFound(Exception):
   2     def __init__( self, host ):
   3         self.host = host

You may later write:

   1 try:
   2     raise HostNotFound( "taoriver.net" )
   3 except HostNotFound, X:
   4     print "Host Not Found:", X.host

Overloading __str__

You can overload __str__ to get the exception to explain itself:

   1 class HostNotFound(Exception):
   2     def __init__( self, host ):
   3         self.host = host
   4     def __str__( self ):
   5         return "Host Not Found exception: missing %s" % self.host

That way, you only need print the exception instance:

   1 try:
   2     raise HostNotFound( "taoriver.net" )
   3 except HostNotFound, X:
   4     print X

I don't know if this is a good idea or not.

Questions

  • How do you relay the traceback information?
  • What better exception-foo is out there?

WritingExceptionClasses (last edited 2011-05-16 19:13:51 by VPN-18-101-8-113)

Unable to edit the page? See the FrontPage for instructions.