退出代码映射
退出代码的默认行为如下:
- 
命令选项解析中的错误将导致代码为 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;
	}
}
可以定义 Throwable 和退出代码之间的映射函数。您也可以只配置 类 到 退出代码 的关系,这在配置中只是一种语法糖。
CommandRegistration.builder()
	.withExitCode()
		.map(MyException.class, 3)
		.map(t -> {
			if (t instanceof MyException) {
				return ((MyException) t).getCode();
			}
			return 0;
		})
		.and()
	.build();
备注
退出代码不能通过基于注解的配置进行自定义