This document discusses exception handling in Python. It defines errors and exceptions, and describes the different types of errors like syntax errors, semantic errors, type errors, runtime errors, and logical errors. It explains how exceptions occur during program execution. The try and except blocks are described for handling exceptions, with examples given. The raise statement is explained for raising user-defined exceptions. Common built-in exceptions in Python like IOError, ImportError, ValueError and KeyboardInterrupt are also listed.