For each command available for the CLI, there is a duplication of the catching and throwing of exceptions. I would suggest creating an abstract class that implements CliktCommand, DatamaintainCliCommand for example that does that catching and then calls an abstract method, say executeCommand that does whatever the command is supposed to do.
For each command available for the CLI, there is a duplication of the catching and throwing of exceptions. I would suggest creating an abstract class that implements CliktCommand,
DatamaintainCliCommand
for example that does that catching and then calls an abstract method, sayexecuteCommand
that does whatever the command is supposed to do.