Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2003-11-17 20:12:31
Size: 522
Editor: dsl254-010-130
Comment: A little something to get the ball rolling.
Revision 5 as of 2003-11-21 22:15:43
Size: 989
Editor: dsl254-010-130
Comment: Catch-all is bad, but how to do it anyways. (to-do.)
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
except:
  z = "divide by zero"
except ZeroDivisionError:
  print "divide by zero"
}}}

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

{{{
#!python
(x,y) = (5,0)
try:
  z = x/y
except ZeroDivisionError, e:
  z = e # representation: "<exceptions.ZeroDivisionError instance at 0x817426c>"
print z # output: "integer division or modulo by zero"
Line 20: Line 32:
Catch-all "Exception" exception handling. (Note: JohannesGijsbers says this is ''bad.'' We should have a note about why it's bad, next to how to do it.)

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"

To Write About...

Give example of IOError, and interpreting the IOError code.

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

Catch-all "Exception" exception handling. (Note: JohannesGijsbers says this is bad. We should have a note about why it's bad, next to how to do it.)

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.