退出程式碼對映

退出程式碼的預設行為如下:

  • 命令選項解析錯誤將導致程式碼 2

  • 任何通用錯誤將導致程式碼 1

  • 顯然,在任何其他情況下,都將導致程式碼 0

每個 CommandRegistration 都可以定義其自己的異常退出程式碼之間的對映。Spring Shell 使用與 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();
退出程式碼無法透過基於註解的配置進行定製
© . This site is unofficial and not affiliated with VMware.