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