code: @SuppressWarnings("checkstyle:avoidhidingcauseexception")
    public static ConfigurationBuilder parseToConfigurationBuilder(final String[] args,
                                                                   final Class<? extends Name<?>>... argClasses)
        throws ParseException {
      final CommandLine commandLine;
      try {
        commandLine = new CommandLine().processCommandLine(args, argClasses);
      } catch (final IOException e) {
        // processCommandLine() converts ParseException into IOException. This reverts that to make exception handling
        // more straight forward.
        throw new ParseException(e.getMessage());
      }
  
      // processCommandLine() indicates that it might return null. We need to guard users of this one from that
      if (commandLine == null) {
        throw new ParseException("Unable to parse the command line and the parser returned null.");
      } else {
        return commandLine.getBuilder();
      }
    }
docs: ParseException constructor does not accept a cause Exception, hence