跳到主要内容

退出代码映射

QWen Max 中英对照 Exit Code Mappings

退出代码的默认行为如下:

  • 命令选项解析中的错误将导致代码为 2

  • 任何一般性错误将导致代码为 1

  • 显然,在其他任何情况下,结果代码为 0

每个 CommandRegistration 都可以定义自己的异常退出代码之间的映射。本质上,我们受限于 Spring Boot 中关于退出代码的功能,并且简单地集成到其中。

假设有一个异常如下所示,它将从命令中抛出:

static class MyException extends RuntimeException {

private final int code;

MyException(String msg, int code) {
super(msg);
this.code = code;
}

public int getCode() {
return code;
}
}
java

可以定义 Throwable 和退出代码之间的映射函数。您也可以只配置 退出代码 的关系,这在配置中只是一种语法糖。

CommandRegistration.builder()
.withExitCode()
.map(MyException.class, 3)
.map(t -> {
if (t instanceof MyException) {
return ((MyException) t).getCode();
}
return 0;
})
.and()
.build();
java
备注

退出代码不能通过基于注解的配置进行自定义