Checked exceptions give the compiler the chance to, well, check to see if they're being handled. The folks who invented Java thought this would requiere developers to acknowledge exceptions and help avoid surprising errors at run time. Many Java users appreciate the compile time help, but some resent the extra coding required to catch or declare throwing checked exceptions.
Bruce Eckel's
Thinking In Java (free online) has a good chapter on exceptions that mentions the question whether checked exceptions are good or not.