If an error occurs in your program, an exception is raised and an error message such as the following appears:
Traceback (most recent call last): File "<interactive input>", line 42, in foo.py NameError: a
The error message indicates the type of error that occurred, along with its location. Normally, errors cause a program to abort. However, you can catch and handle exceptions using the try and except statements, like this:
try: f = open("file.txt","r") except IOError, e: print e
If an IOError occurs, details concerning the cause of the error are placed in e and control passes to the code in the except block. If some other kind of exception is raised, it's passed to the enclosing code block (if any). If no errors occur, the code in the except block is ignored.
The raise statement is used to signal an exception. When raising an exception, you can use one of the built-in exceptions, like this:
raise RuntimeError, "Unrecoverable error"