Java Exceptions Hierarchy, what is the point?
<p>I'm finding myself busy refactoring my pet project and removing all the noise associated with exception throwing declarations. Basically, everything that violates a condition is assertion violation or, formally, AssertionError, which in Java is generously allowed to be omitted from method's signature. My question is: what is the point of having Exceptions hierarchy? My experience is that each and every exception is unique, and there is no formal criteria to establish that one set of exceptions is a subset of the other. Even distinction between checked and unchecked exceptions is fuzzy, why, for example, would I insist on the client code catching exception when a lazy (or impatient) programmer can easily wrap it into RuntimeException and rethrow it on me?</p>
