Нет, он не может автоматически перейти на error-channel
.Это не то, как работает простая Java.Таким образом, если вы вызываете некоторый код Java, вы ожидаете оттуда исключения и определенно используете конструкцию try...catch
.
error-channel
имеет смысл только в процессах, не запущенных конечными пользователями, в некоторых активных процессах, таких как исполнители задач и планировщики.Для этого мы действительно предоставляем хук error-channel
, чтобы не допустить исчезновения ошибки в нисходящем направлении.
Еще один способ сделать а-ля try...catch
, но отправка на error-channel
, может быть выполнена через шлюз обмена сообщениями: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints-chapter.html#gateway-error-handling. Таким образом, инфраструктура переносит весь поток на try...catch
и отправляет ErrorMessage
в сконфигурированную errorChannel
.
Также для каждой услуги мы предоставляем ExpressionEvaluatingRequestHandlerAdvice
со своей собственной областью failureChannel
: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints-chapter.html#expression-advice