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: If you have designed your business logic to throw exceptions with user-facing error messages, you want to print this error message instead of the stack trace.
  This can be accomplished by installing a custom `IExecutionExceptionHandler`, like this:
  
  [source,java]
  ----
  new CommandLine(new MyApp())
      .setExecutionExceptionHandler(new PrintExceptionMessageHandler())
      .execute(args);
  ----
  
  Where the `IExecutionExceptionHandler` implementation could look something like this:
  [source,java]
  ----
  class PrintExceptionMessageHandler implements IExecutionExceptionHandler {
      public int handleExecutionException(Exception ex,
  
negative.code: }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  // getting return value from Callable or Method command
  val topResult: Int = cmd.getExecutionResult()
  
  // getting return value from Callable or Method subcommand
  val parseResult = cmd.parseResult
  if (parseResult.subcommand() != null) {
      val sub: CommandLine = parseResult.subcommand().commandSpec().commandLine()
      val subResult = sub.getExecutionResult<Int>()
  }
  ----
  
  === DIY Command Execution
  
  Alternatively, applications may want to use the `parseArgs` method directly and write their own "Do It Yourself" command execution logic.
  