Differences between revisions 11 and 12
Revision 11 as of 2003-10-23 03:21:15
Size: 1271
Editor: p50839E41
Comment:
Revision 12 as of 2004-08-25 04:59:45
Size: 1270
Editor: cpe-68-112-255-10
Comment: Updated example to use super()
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
    def __init__( self, host ):     def __init__(self, host):
Line 10: Line 10:
        Exception.__init__(self, 'Host Not Found exception: missing %s' % host)         super(HostNotFound, self)('Host Not Found exception: missing %s' % host)
Line 18: Line 18:
    raise HostNotFound( "taoriver.net" )     raise HostNotFound("taoriver.net")
Line 21: Line 21:
    print exc # -> 'Host Not Found exception: missing taoriver.net'
    print exc.host # -> 'taoriver.net'
    print exc  # -> 'Host Not Found exception: missing taoriver.net'
    print exc.host  # -> 'taoriver.net'

Writing Exception Classes

Exception classes are not special, you just derive them from Exception:

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

You may later write:

   1 try:
   2     raise HostNotFound("taoriver.net")
   3 except HostNotFound, exc:
   4     # Handle exception.
   5     print exc  # -> 'Host Not Found exception: missing taoriver.net'
   6     print exc.host  # -> 'taoriver.net'

See Also

HandlingExceptions, TracebackModule

Questions

  • How do you relay the traceback information? Relay the traceback information? Moving it higher up the call-stack? Could you try to explain your question?

    • When you're logging exceptions, you want access to the traceback information to. After some research, I believe what you use is extract_tb or extract_stack from the traceback module. -- LionKimbro DateTime(2003-09-07T15:23:43Z)

    Look at cgitb for how to do detailed TB introspection, and as an example of why mixing logic and (HTML) layout is a very bad thing.

  • What better exception-foo is out there?

    AlexMartelli's "Dos and Don'ts".

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.