I have now official decided that I would delve deeper in the world of computer engineering and software development. I am currently studying Java in my introductory course at school. While we're talking about arrays, loops, and string manipulation, I was curious about the idea of throwing exceptions.

Let me start with the most basic questions regarding exceptions.
1) What are exceptions? From the errors I've received the word exception doesn't appear to be following a strict dictionary definition.
2) What are the most common types of exceptions out there?
3) When an exception is encountered why is it that we need to catch it? What consequences are there if we chose not to look for exceptions
4) Is the program always looking for exceptions? I would presume so since I've never written anything that deals with either catching or throwing an exception.

No need to answer this all at once. Thanks for all replies.