code: public static <T> T construct(String classname, String readable) throws ConfigurationException
      {
          Class<T> cls = FBUtilities.classForName(classname, readable);
          try
          {
              return cls.newInstance();
          }
          catch (IllegalAccessException e)
          {
              throw new ConfigurationException(String.format("Default constructor for %s class '%s' is inaccessible.", readable, classname));
          }
          catch (InstantiationException e)
          {
              throw new ConfigurationException(String.format("Cannot use abstract class '%s' as %s.", classname, readable));
          }
          catch (Exception e)
          {
              // Catch-all because Class.newInstance() "propagates any exception thrown by the nullary constructor, including a checked exception".
              if (e.getCause() instanceof ConfigurationException)
                  throw (ConfigurationException)e.getCause();
              throw new ConfigurationException(String.format("Error instantiating %s class '%s'.", readable, classname), e);
          }
      }
docs: Constructs an instance of the given class, which must have a no-arg or default constructor.
  @param classname Fully qualified classname.
  @param readable Descriptive noun for the role the class plays.
  @throws ConfigurationException If the class cannot be found.