public static interface CommandLine.IExecutionExceptionHandler
Runnable
, Callable
or Method
user object of the command.
Implementation Requirements:
Implementors that need to print messages to the console should use the output and error PrintWriters, and the color scheme from the CommandLine object obtained from the exception.
API Note:
This interface supersedes CommandLine.IExceptionHandler2
.
Example usage:
IExecutionExceptionHandler errorHandler = new IExecutionExceptionHandler() { public int handleExecutionException(Exception ex, CommandLine commandLine, ParseResult parseResult) { //ex.printStackTrace(); // no stack trace commandLine.getErr().println(ex.getMessage()); commandLine.usage(commandLine.getErr()); return commandLine.getCommandSpec().exitCodeOnExecutionException(); } }; int exitCode = new CommandLine(new App()) .setExecutionExceptionHandler(errorHandler) .execute(args);
CommandLine.setExecutionExceptionHandler(IExecutionExceptionHandler)
Modifier and Type | Method and Description |
---|---|
int |
handleExecutionException(Exception ex,
CommandLine commandLine,
CommandLine.ParseResult fullParseResult)
Handles an
Exception that occurred while executing the Runnable or
Callable command and returns an exit code suitable for returning from CommandLine.execute(String...) . |
int handleExecutionException(Exception ex, CommandLine commandLine, CommandLine.ParseResult fullParseResult) throws Exception
Exception
that occurred while executing the Runnable
or
Callable
command and returns an exit code suitable for returning from CommandLine.execute(String...)
.ex
- the Exception thrown by the Runnable
, Callable
or Method
user object of the commandcommandLine
- the CommandLine representing the command or subcommand where the exception occurredfullParseResult
- the result of parsing the command line arguments.
This is the ParseResult of the top-level command.
Note that if the exception occurred in a subcommand, you may want to inspect the ParseResult of
the subcommand that threw the exception, which can be obtained by calling commandLine.getParseResult()
on the CommandLine object passed to this method.Exception