The Command.execute(), Command.invokeRPC(), and CommandHandler.executeCommand() methods must throw exceptions of class atg.integration.CommandInvocationException. This exception is intended to wrap any underlying exceptions that might be thrown by a particular transport or remote system. This exception must wrap the underlying exception, rather than copying its message, so that stack trace printouts include the information from the underlying exception.
The CommandInvocationException class has two useful subclasses:
atg.integration.CommandTimeoutExceptioncan be thrown when an RPC call times out. This is a special case, since a timeout doesn’t indicate whether the RPC call succeeded or not.atg.integration.InvalidInputExceptioncan be thrown if the input object passed to theCommandis invalid.

