If there is a issue with configuration then it will reported when the get method is called and will contain the exact cause of the problem like ClassNotFoundException etc. This exception will be logged. If we throw an ExceptionInInitializerError then the original cause of the exception is only logged in the first call that is made all the other threads get a NoClassDefFoundError. In a server with several running threads it will be very difficult to find that one thread that has the right message. Other thing is that . In eBay we have config beans which can be triggered at Runtime and change the system properties of the server environment. Hence we have an opportunity to fix the offending property by changing the system property specifying the impl class, thereby preventing a complete server restart. This is very useful when you consider we have pools having a large no. of machines.