An error condition that changes the normal
flow of control
in a program. An exception may be generated ("raised") by
hardware or
software. Hardware exceptions include
reset,
interrupt or a signal from a
memory management unit. Exceptions may be generated by the arithmetic logic unit or
floating-point unit for numerical errors such as
divide by zero,
overflow or
underflow or instruction decoding errors such as privileged, reserved,
trap or
undefined instructions. Software exceptions are even more
varied and the term could be applied to any kind of error
checking which alters the normal behaviour of the program.