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 doit être suivie 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, ce qui revient à un état défini en dehors de la portée de l'exception, puis en invoquant un bloc ou une routine de gestionnaire.