Differences between revisions 6 and 7
Revision 6 as of 2003-11-22 00:01:59
Size: 1227
Editor: ip503dabc3
Comment: catch-all bad! ;)
Revision 7 as of 2003-11-22 00:02:44
Size: 1274
Editor: ip503dabc3
Comment: CatchWhatYouCanHandle
Deletions are marked like this. Additions are marked like this.
Line 37: Line 37:
This is bad because you'll almost certainly catch too many errors. As a simple example, when the user presses Ctrl-C, thus generating a KeyboardInterrupt, it will be caught and the code above will print "divide by zero". Now that's confusing! This is bad because you'll almost certainly catch too many errors. As a simple example, when the user presses Ctrl-C, thus generating a KeyboardInterrupt, it will be caught and the code above will print "divide by zero". Now that's confusing, so you should only Wiki:CatchWhatYouCanHandle.

Handling Exceptions

The simplest way to handle exceptions is with a "try-except" block:

   1 (x,y) = (5,0)
   2 try:
   3   z = x/y
   4 except ZeroDivisionError:
   5   print "divide by zero"

If you wanted to examine the exception from code, you could have:

   1 (x,y) = (5,0)
   2 try:
   3   z = x/y
   4 except ZeroDivisionError, e:
   5   z = e # representation: "<exceptions.ZeroDivisionError instance at 0x817426c>"
   6 print z # output: "integer division or modulo by zero"

This page previously used a catch-all exception clause:

   1 (x,y) = (5,0)
   2 try:
   3   z = x/y
   4 except:
   5   print "divide by zero"

This is bad because you'll almost certainly catch too many errors. As a simple example, when the user presses Ctrl-C, thus generating a KeyboardInterrupt, it will be caught and the code above will print "divide by zero". Now that's confusing, so you should only CatchWhatYouCanHandle.

To Write About...

Give example of IOError, and interpreting the IOError code.

Give example of multiple excepts. Handling multiple excepts in one line.

Show how to use "else" and "finally".

Show how to continue with a "raise".

See Also:

WritingExceptionClasses, TracebackModule, CoupleLeapingWithLooking

HandlingExceptions (last edited 2024-03-05 20:29:39 by MatsWichmann)

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