Why is it discouraged to throw a generic (java.lang.Exception) exception, when it is usually sufficient to handle most conditional failures within a method? I understand that if a method could throw multiple types of exceptions then throwing specific subclasses of an exception might clarify the handling a bit, but in a general fail/succeed case I think Exception serves more than adequate.
Why is it discouraged to throw a generic (java.lang.Exception) exception, when it is usually
Share
The problem is that
Exceptionis also the superclass ofRuntimeException, which encompasses some stuff that shouldn’t be caught as it indicates a problem with the programming rather than an exceptional condition that arises from context. You don’t want to catch a BufferOverflowException or UnsupportedOperationException under normal circumstances. Besides, throwing separate Exception types gives the calling code control over how to handle each one. Boilerplate is reduced in Java 7 with the new multi-catch feature.