ConfigurationException is a checked exception; should be unchecked (ie: 
subclass of RuntimeException)
-----------------------------------------------------------------------------------------------------

                 Key: CONFIGURATION-384
                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-384
             Project: Commons Configuration
          Issue Type: Bug
          Components: Events & Notifications
    Affects Versions: 1.6
         Environment: N/A
            Reporter: private



There's a movement in the field to simplify Java development by using unchecked 
Exceptions rather than checked Exceptions. Most notably this approach has been 
championed by Rod Johnson (J2EE without EJB, Spring Framework) and Bruce Eckels 
(Thinking in Java). In the last 2 years, popular libraries like Spring 
Framework and Hibernate 3.0 have used unchecked exceptions.

Quote from the DeveloperWorks article listed below:

"Some exceptions are basically secondary return codes (which generally signal 
violation of business rules), and some are of the "something went horribly 
wrong" variety (such as failure to make a database connection). Johnson 
advocates using checked exceptions for the first category (alternative return 
codes), and runtime exceptions for the latter category. In the "something went 
horribly wrong" category, the motivation is simply to recognize the fact that 
no caller is going to effectively handle this exception, so it might as well 
get propagated all the way up the stack with the minimum of impact on the 
intervening code (and minimize the chance of exception swallowing)."

I have listed this as a bug rather than an improvement as it is common for 
developers to simply wrap configuration sections in a try { .. } catch ( 
ConfigurationException ignore ) {}, which inevitably leads to buggy code 
further down the line.Even if the ConfigurationException is caught, it is 
likely to be wrapped in a RuntimeException subclass for reporting, which is 
also unnecessarily obtuse.

It makes sense for this Exception to be unchecked (RuntimeException subclass) 
so that developers can decide whether the exception condition is worthy of 
catching or should be allowed to propagate as best suits their application.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to