I liked checked exceptions. I just think they were overused. Had a CS prof that summed up the optimal case like this:
Programmer's fault: runtime exception
Not programmer's fault: checked exception
Reading from a file but the disk fails? Not programmer's fault. IOException (checked). Missed a null somewhere? Programmer's fault. NullPointerException (unchecked).