Почему в mulesoft "Ошибка распространения" сбрасывает ту же ошибку? - PullRequest
0 голосов
/ 31 января 2019

Я новичок в mulesoft, и, изучая его, я пытаюсь понять, почему в модуле "onErrorPropagate" ошибка rethrown после выполнения области действия.

Можете ли вы объяснить преимущества?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

«onErrorPropagate» распространяет (перебрасывает) ошибку в родительский поток (или глобальный обработчик ошибок, если он уже достиг основного потока).

В некоторых случаях это может быть полезно.Скажем, у вас есть какая-то специфическая обработка ошибок потока (например, если что-то идет не так, установите полезную нагрузку по умолчанию).Затем вы распространяете эту ошибку на следующий уровень, где у вас есть глобальный обработчик ошибок, который, скажем, хранит некоторую информацию в базе данных QA.

Вы не хотите иметь этот соединитель базы данных в каждом отдельном обработчике ошибок.Таким образом, вы можете получить структуру, подобную «java-наследованию», для ваших ошибок.

Примечание: если вы хотите, чтобы ваша ошибка только обрабатывалась, и больше ничего не делали, вы можете использовать «onErrorContinue»

0 голосов
/ 01 февраля 2019

Распространение по ошибке выполнит откат любых транзакций, выполнит и использует этот результат, чтобы сбросить существующую ошибку - это означает, что ее владелец будет считаться «сбойным».

Лучшее использование вмногоуровневая система, позволяющая каждому слою выполнять свою небольшую часть реакции на ошибку.

Если вы знакомы с Java, вы можете подумать, что она перехватывает исключение и выдает его заново.Например, иногда вы хотите что-то сделать с ошибкой самостоятельно, но все же хотите распространить ее вверх, чтобы иметь дело с более высокими уровнями.

Вы можете добавить запись в конкретный поток для ошибки, но затем оставить его для родительских потоков, чтобы фактически обработать исключение.

...