最新の安定バージョンについては、Spring Shell 4.0.1 を使用してください! |
終了コードのマッピング
終了コードのデフォルトの動作は次のとおりです。
コマンドオプションの解析でエラーが発生すると、コード
2が返されます。一般的なエラーは
1コードになります明らかに、それ以外の場合は
0のコードになります
すべての CommandRegistration は、例外と終了コード間のマッピングを独自に定義できます。Spring シェルは、終了コードに関して 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();| アノテーションベースの構成で終了コードをカスタマイズすることはできません |