All exceptions that are subclasses of RuntimeException are UNCHECKED, which means they are not being checked by the compiler whether you have followed the handle-or-declare rule.
All exceptions that are subclass of Exception but not of RuntimeException are checked exceptions (meaning, they are being checked by the compiler whether you have followed the handle-or-declare rule.)
To add to what said by Jart,
Error and it's sub-classes are also
not checked by compiler.
Throwable and its sub-classes are
checked by compiler
Murali...
SCJP5