This document discusses exception handling in Java. It defines an exception as an event that disrupts normal program flow, such as an error. Exceptions are represented by objects that describe the error condition. The document explains Java's exception hierarchy with Throwable at the root and Exception and Error as subclasses. It covers exception handling keywords like try, catch, throw, throws and finally. It provides examples of exception handling code and describes how to define custom exception classes by subclassing Exception.