An interrupt is a "Hey! Something really important just happened, better do something about it QUICK!" message.
The "something" may not be around for long, or it may happen again very soon and if you're processing one interrupt, you may miss another, so you want to do the very bare minimum.
Remember that at 9600 baud, a single character takes over 1ms to transmit, which is an ice age to even a processor running at only 16MHz, so you really don't want to be transmitting strings using the standard libraries in an interrupt service routines.
It's a huge subject, potentially full of pitfalls and tricks, and variations, depending on processor - any book on embedded computing will have a useful section.