Earlier I wrote about Errors and Exceptions in Python. This post will be about how to handle those. Exception handling allows us to continue our program (or terminate it) if an exception occurs.

Error Handling

Error handling in Python is done through the use of exceptions that are caught in try blocks and handled in except blocks.

Try and Except

If an error is encountered, a try block code execution is stopped and transferred down to the except block.

In addition to using an except block after the try block, you can also use the finally block.

The code in the finally block will be executed regardless of whether an exception occurs.

Raising an Exception

You can raise an exception in your own program by using the raise exception [, value] statement.

Raising an exception breaks current code execution and returns the exception back until it is handled.

Example

A try block look like below

try:
    print "Hello World"
except:
    print "This is an error message!"

Exception Errors

Some of the common exception errors are:

IOError – If the file cannot be opened.

ImportError – If python cannot find the module

ValueError – Raised when a built-in operation or function receives an argument that has the right type but an inappropriate value

KeyboardInterrupt – Raised when the user hits the interrupt key (normally Control-C or Delete)

EOFError – Raised when one of the built-in functions (input() or raw_input()) hits an end-of-file condition (EOF) without reading any data

Example

Let’s have a look at some examples using exceptions.

except IOError:
    print('An error occured trying to read the file.')
    
except ValueError:
    print('Non-numeric data found in the file.')

except ImportError:
    print "NO module found"
    
except EOFError:
    print('Why did you do an EOF on me?')

except KeyboardInterrupt:
    print('You cancelled the operation.')

except:
    print('An error occured.')

There are a number of built-in exceptions in Python.

Leave a Reply

Your email address will not be published. Required fields are marked *