退出程式碼對映
退出程式碼的預設行為如下:
-
命令選項解析錯誤將導致程式碼
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();
| 退出程式碼無法透過基於註解的配置進行定製 |