Une exception est une condition inhabituelle qui nécessite un écart par rapport au flux normal du programme. Normalement, une exception ne doit pas entraîner un échec total, mais plutôt être assistée par un gestionnaire d'exceptions. La gestion des exceptions est une construction intégrée dans de nombreux langages de programmation. Habituellement, les exceptions sont gérées en déroulant la pile, revenant ainsi à un état défini en dehors de la portée de l'exception, puis en appelant un bloc ou une routine de gestionnaire.