anchor.diff:  
   `@Command`-annotated classes that implement `Callable` and `@Command`-<<command-methods,annotated methods>> can simply return an `int` or `Integer`, and this value will be returned from `CommandLine.execute`. For example:
   
  -```java
  +.Java
  +[source,java,role="primary"]
  +----
   @Command(name = "greet")
   class Greet implements Callable<Integer> {
       public Integer call() {
  
positive.code:         return 1;
      }
  }
  ```
  
  When the end user specified invalid input, the `execute` method prints an error message followed by the usage help message of the command, and returns an exit code. This can be <<Invalid User Input,customized>> by configuring a `IParameterExceptionHandler`.
  
  
negative.code: }
  
  assert 3 == new CommandLine(new Gesture()).execute();
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  @Command(name = "wave")
  class Gesture : Runnable, IExitCodeGenerator {
  
      override fun run() {
          println("wave")
      }
  
      override fun getExitCode(): Int {
          return 3
      }
  }
  
  assert(3 == CommandLine(Gesture()).execute())
  ----
  
  === Exception Exit Codes
  
  By default, the `execute` method returns `CommandLine.ExitCode.OK` (`0`) on success, `CommandLine.ExitCode.SOFTWARE` (`1`) when an exception occurred in the Runnable, Callable or command method, and `CommandLine.ExitCode.USAGE` (`2`) for invalid input. (These are common values according to https://stackoverflow.com/questions/1101957/are-there-any-standard-exit-status-codes-in-linux/40484670#40484670[this StackOverflow answer]). This can be customized with the `@Command` annotation. For example:
  
  .Java / Kotlin
  [source,java,role="primary"]
  ----
  @Command(exitCodeOnInvalidInput = 123,
     exitCodeOnExecutionException = 456)
  ----
  
  Additionally, applications can configure a `IExitCodeExceptionMapper` to map a specific exception to an exit code:
  
  .Java
  [source,java,role="primary"]
  ----
  class MyMapper implements IExitCodeExceptionMapper {
      @Override
      public int getExitCode(Throwable t) {
  