checked exception are a failed language design experiment

The price of checked exceptions is an Open/Closed Principle violation.

If you throw a checked exception from a method in your code and the catch is three levels above, you must declare that exception in the signature of each method between you and the catch. This means that a change at a low level of the software can force signature changes on many higher levels.

- Robert C. Martin, «Clean Code» page 107