Package picocli
Interface CommandLine.IExecutionExceptionHandler
- Enclosing class:
CommandLine
public static interface CommandLine.IExecutionExceptionHandler
Classes implementing this interface know how to handle Exceptions that occurred while executing the
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);
- Since:
- 4.0
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionint
handleExecutionException
(Exception ex, CommandLine commandLine, CommandLine.ParseResult fullParseResult) Handles anException
that occurred while executing theRunnable
orCallable
command and returns an exit code suitable for returning fromCommandLine.execute(String...)
.
-
Method Details
-
handleExecutionException
int handleExecutionException(Exception ex, CommandLine commandLine, CommandLine.ParseResult fullParseResult) throws Exception Handles anException
that occurred while executing theRunnable
orCallable
command and returns an exit code suitable for returning fromCommandLine.execute(String...)
.- Parameters:
ex
- the Exception thrown by theRunnable
,Callable
orMethod
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 callingcommandLine.getParseResult()
on the CommandLine object passed to this method.- Returns:
- an exit code
- Throws:
Exception
-