anchor.diff:  List<Object> result = cmd.parseWithHandler(new RunAll(), args);
   ----
   
  -.After
  -[source,java]
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +val cmd = CommandLine(MyTopLevelCommand())
  +        .addSubcommand("status",   GitStatus())
  +        .addSubcommand("commit",   GitCommit())
  +        .addSubcommand("add",      GitAdd())
  +val result = cmd.parseWithHandler<List<Any>>(CommandLine.RunAll(), args)}
  +----
  +
  +After
  +
  +.Java
  +[source,java,role="primary"]
   ----
   CommandLine cmd = new CommandLine(MyTopLevelCommand())
           .addSubcommand("status",   new GitStatus())
  
positive.code: int exitCode = cmd.execute(args);
  ----
  
  The `ParseResult` can be used to get the return value from a Callable or Method subcommand:
  
  [source,java]
  ----
  // getting return value from Callable or Method command
  Object topResult = cmd.getExecutionResult();
  
negative.code: Try 'grep --help' for more information.
  ----
  
  You can customize how your application handles invalid user input by setting a custom `IParameterExceptionHandler`:
  
  .Java
  [source,java,role="primary"]
  ----
  new CommandLine(new MyApp())
      .setParameterExceptionHandler(new ShortErrorMessageHandler())
      .execute(args);
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  CommandLine(MyApp())
      .setParameterExceptionHandler(ShortErrorMessageHandler())
      .execute(*args)
  ----
  
  Where the `IParameterExceptionHandler` implementation could be something like this:
  
  .Java
  [source,java,role="primary"]
  ----
  class ShortErrorMessageHandler implements IParameterExceptionHandler {
  
  