diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/SOPExecutionExceptionHandler.java b/sop-java-picocli/src/main/java/sop/cli/picocli/SOPExecutionExceptionHandler.java index c0cabea..f6906ff 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/SOPExecutionExceptionHandler.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/SOPExecutionExceptionHandler.java @@ -19,8 +19,13 @@ public class SOPExecutionExceptionHandler implements CommandLine.IExecutionExcep // CHECKSTYLE:OFF if (ex.getMessage() != null) { commandLine.getErr().println(colorScheme.errorText(ex.getMessage())); + } else { + commandLine.getErr().println(ex.getClass().getName()); + } + + if (SopCLI.stacktrace) { + ex.printStackTrace(commandLine.getErr()); } - ex.printStackTrace(commandLine.getErr()); // CHECKSTYLE:ON return exitCode; diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/SopCLI.java b/sop-java-picocli/src/main/java/sop/cli/picocli/SopCLI.java index 4e3d587..2019f93 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/SopCLI.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/SopCLI.java @@ -52,6 +52,10 @@ public class SopCLI { public static String EXECUTABLE_NAME = "sop"; + @CommandLine.Option(names = {"--stacktrace"}, description = "Print Stacktrace", + scope = CommandLine.ScopeType.INHERIT) + static boolean stacktrace; + public static void main(String[] args) { int exitCode = execute(args); if (exitCode != 0) {