Un'eccezione è una condizione insolita che richiede una deviazione dal flusso normale del programma. Normalmente, un'eccezione non dovrebbe comportare un errore totale, ma dovrebbe essere seguita da un gestore di eccezioni. La gestione delle eccezioni è un costrutto incorporato in molti linguaggi di programmazione. Di solito, le eccezioni vengono gestite svolgendo lo stack, quindi tornando a uno stato definito al di fuori dell'ambito dell'eccezione e quindi invocando un blocco gestore o una routine.