Вы можете перехватить нужные ошибки, используя error-handler
в вашем потоке, где вы выполняете http:request
.если вы не уловите ошибку, она будет пузыриться до вызывающего потока и так далее.Если обработчик ошибок не настроен, будет использован мул по умолчанию, который в основном регистрирует сообщение.
В Муле 4 вы можете перехватывать все ошибки в вашем потоке следующим образом:
<flow name="retrieveMatchingOrders">
<http:request config-ref="customersConfig" path="/customer">
</http:request>
<error-handler>
<on-error-continue>
<!-- error handling logic -->
</on-error-continue>
</error-handler>
</flow>
on-error-continue
будет выполнять и использовать результат выполнения как результат своего владельца (как если бы владелец фактически завершил выполнение успешно).Любые транзакции на этом этапе также будут зафиксированы
Таким образом, вы можете установить полезную нагрузку на желаемое сообщение, которое будет возвращено и т. Д.
Также есть обработчик on-error-propogate
и try
scope, более подробная информация о них доступна здесь: https://docs.mulesoft.com/mule-runtime/4.1/intro-error-handlers
Все ошибки, выданные в Mule, содержат метаданные, включая ТИП.Если вам нужно перехватить определенные ошибки HTTP, вы можете настроить свой обработчик ошибок следующим образом:
<error-handler>
<on-error-continue type="HTTP:TIMEOUT">
<!-- error handling logic -->
</on-error-continue>
</error-handler>
Вот список всех определенных HTTP: ошибок, выданных модулем HTTP:
HTTP: UNSUPPORTED_MEDIA_TYPE
HTTP: ПОДКЛЮЧЕНИЕ
HTTP: INTERNAL_SERVER_ERROR
HTTP: METHOD_NOT_ALLOWED
HTTP: NOT_ACCEPTABLE
HTTP: TOO_MANY_REQUESTS HTTP: SERVICE_UNAVAILABLE
HTTP: CLIENT_SECURITY
HTTP: FORBIDDEN
HTTP: UNAUTHORIZED
HTTP: RETRY_EXHA*
HTTP: NOT_FOUND
HTTP: BAD_REQUEST
HTTP: PARSING
HTTP: TIMEOUT
HTTP: SECURITY
Документация каждого модуля должна содержать все конкретные типы ошибок, выдаваемых этим модулем.Вот один пример HTTP: https://docs.mulesoft.com/connectors/http/http-documentation#throws
А вот полный список основных типов ошибок, которые вы можете перехватить, например EXPRESSION
, например:
https://docs.mulesoft.com/mule-runtime/4.1/mule-error-concept