Basically in java (opposed to .NET) you have two types of exceptions:
Checked Exception: All classes that inherit from exception. Client code has to handle this kind of exceptions (enforced in the compiler) via try-catch or throws clause.
Unchecked Exception: All classes that inherit from RuntimeException. Client code does not have to handle this type of exceptions.
May I suggest the following O'Reilly On Java Exception article.