我正在从 picocli 3.9.6 更新到 4.2.0,在用新版本替换旧的不推荐使用的调用时遇到了问题。
在我的原始版本中,我有一个这样的代码块:
try {
return commandLine.parseWithHandlers(
new RunLast().useOut(ps),
new ExceptionHandler(),
args);
}
catch(Exception e) {
// handle exceptions
}
ExceptionHandler
处理参数和执行异常——两者都被重新抛出,但参数异常将帮助文本添加到异常文本中。在某些情况下,例如,一个命令被赋予了错误的参数,catch 就会被击中。catch 将确保在 UI 中打印错误。
我试图像这样更新它:
try {
commandLine.setOut(pw);
ExceptionHandler handler = new ExceptionHandler();
commandLine.setExecutionExceptionHandler(handler);
commandLine.setParameterExceptionHandler(handler);
commandLine.execute(args);
return commandLine.getExecutionResult();
}
catch(Exception e) {
// handle exceptions
}
在这个新版本中,异常会像以前一样被抛出,但在被ExceptionHandler
. 我怎样才能捕捉到这些异常?