Existem dois tipos de interrupções.
O primeiro tipo são interrupções para sinalização de eventos de hardware, como se o temporizador de hardware tivesse decorrido ou que o controlador de disco rígido tivesse terminado de transferir dados para a memória.
O segundo tipo são interrupções para sinalizar alguma condição inesperada. Alguns exemplos são: acesso à memória inválida, divisão por zero (na verdade é "divide overflow" que ocorre não apenas quando você divide por zero, mas mesmo quando você divide um valor muito grande por um valor muito pequeno), breakpoint instruction, hardware breakpoint etc. Esse tipo de exceção é gerado pela CPU quando não consegue concluir a instrução atual e geralmente resulta no encerramento do processo atual ou no depurador. Na verdade, eles não estão relacionados a sinalizadores de CPU, que contêm os resultados da instrução mais recente.