Lesson 19 - Handling exceptions

advertisement
Lesson 19
Handling Exceptions
Python Mini-Course
University of Oklahoma
Department of Psychology
1
Python Mini-Course: Lesson 19
6/09/09
Lesson objectives
1. Understand how exceptions are
generated and handled in Python
2. Use the raise statement to
generate exceptions
3. Use the try…except statement to
intercept and handle exceptions
4. List the common built-in exceptions
2
Python Mini-Course: Lesson 19
6/09/09
What is an exception?
 Exceptions are run-time errors
 Whenever the interpreter has a
problem it notifies the
user/programmer by raising an
exception
3
Python Mini-Course: Lesson 19
6/09/09
Handling exceptions
 By default, the interpreter
handles exceptions by stopping
the program and printing an error
message
 However, we can override this
behavior by catching the
exception
4
Python Mini-Course: Lesson 19
6/09/09
Example: nocatch.py
fin = open('bad_file')
for line in fin:
print line
fin.close()
5
Python Mini-Course: Lesson 19
6/09/09
Example: catch.py
try:
fin = open('bad_file')
for line in fin:
print line
fin.close()
except:
print 'Something went wrong.'
6
Python Mini-Course: Lesson 19
6/09/09
Catching specific problems
 There are a number of kinds of
exceptions, including:
 IndexError
 EOFError
 KeyError
 SyntaxError
 http://docs.python.org/library/excepti
ons.html#bltin-exceptions
7
Python Mini-Course: Lesson 19
6/09/09
Example: catch2.py
try:
fin = open('bad_file')
for line in fin:
print line
fin.close()
except IOError:
print 'Something went wrong.'
8
Python Mini-Course: Lesson 19
6/09/09
Error handling
 Once you catch the error, you
need to handle it
1. Perform an alternate action
2. Generate a customized error
message and gracefully end the
program
9
Python Mini-Course: Lesson 19
6/09/09
Raising exceptions
 You can also create your own
error generating and handling
routines by raising an exception
 Example:
 study147.py line 146
10
Python Mini-Course: Lesson 19
6/09/09
Exercise
 Write a short program to divide
two numbers
 Include a routine to handle division
by zero
11
Python Mini-Course: Lesson 19
6/09/09
Download