Oct. 13, 2012

How to handle Errors and Exceptions in Python

Errors and Exceptions

If you (and you will) write code that doesn't work, you will get an error message.

What are exceptions?

Exceptions is what you get after you have first ran the program.

Different Errors

There are different kind of errors in Python, here are a few of them: ValueError, TypeError, NameError, IOError, EOError, SyntaxError
This output show  a NameError:
>>> print 10 * ten
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'ten' is not defined

and this output show it's a TypeError
>>> print 1 + 'ten'
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Try and Except

There is a way in Python that helps you to solve this : try and except
#Put the code that may be wrong in a try block, like this:

try:
    fh = open("non_existing_file")

#Put the code that should run if the code inside the try block fails, like this:
except IOError:
    print "The file does not exist, exiting gracefully"

#Putting it together, it will look like this:
try:
    fh = open("non_existing_file")
except IOError:
    print "The file does not exist, exiting gracefully"
    print "This line will always print"

Handling EOFErrors

import sys
try:
    name = raw_input("what is your name?")
except EOFError:
    print "
You did an EOF... "
    sys.exit()

If you do an ctrl+d, you will get an output like this:
>>what is your name?
>>You did an EOF... 

Handling KeyboardInterrupts

try:
    name = raw_input("Enter your name: ")
    print "You entered: " + name
except KeyboardInterrupt:
    print "You hit control-c"

If you press ctrl+c, you will get an output like this:
>>Enter your name: ^C
>>You hit control-c

Handling ValueErrors

while True:
try:
    x = int(raw_input("Please enter a number: "))
    break
except ValueError:
    print "Oops!  That was no valid number.  Try again..."
For a full list of all Python's built-in exceptions, please see this post

Recommended Python Training – DataCamp

For Python training, our top recommendation is DataCamp.

Datacamp provides online interactive courses that combine interactive coding challenges with videos from top instructors in the field.

Datacamp has beginner to advanced Python training that programmers of all levels benefit from.

 



Read more about:
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, PythonForBeginners.com only recommend products or services that we try personally and believe will add value to our readers.