For when you want to rudely awaken the microcontroller from its slumber, and demand its attention immediately! Interrupts allow your code to respond to events as they happen, without having to constantly check for them in your main program loop.