退出代码的默认行为为:
-
来自命令选项解析的错误将导致代码
2
-
任何一般错误将导致结果代码
1
-
显然,在任何其他情况下,结果代码是
0
每个都可以定义自己的 Exception 代码和退出代码之间的映射。
从本质上讲,我们受制于关于退出代码的功能,并且简单地说
融入其中。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;
}
}
可以在退出代码和退出代码之间定义映射函数。您还可以
只需配置一个类来退出代码,这只是配置中的语法糖。Throwable
CommandRegistration.builder()
.withExitCode()
.map(MyException.class, 3)
.map(t -> {
if (t instanceof MyException) {
return ((MyException) t).getCode();
}
return 0;
})
.and()
.build();
退出代码不能使用基于注释的配置进行自定义 |
退出代码不能使用基于注释的配置进行自定义 |