Когда вы говорите о прерываниях и исключениях, вы обычно говорите близко к аппаратному коду, а прерывания и исключения часто реализуются частично аппаратно, а частично программно.
Прерывание - это аппаратное событие (или запускаемое вручную в сборке), которое связано с вектором обработчиков, которые можно использовать для обработки события прерывания, будь то IO Completion, IO Error (Ошибка памяти диска), IO Event (Например, движение мышью). Прерывания могут часто вызывать исключения, когда происходит какое-то неожиданное прерывание.
Исключением является непредвиденное поведение, чаще всего при использовании аппаратного обеспечения, которое происходит от прерывания и обрабатывается отдельно в программном обеспечении с использованием обработчика прерываний. Языки программирования, какими мы их видим, почти всегда маскируют это под какую-то управляющую структуру.