Обработка ошибок прямо в пайплайне

В DVT реализована обработка ошибок прямо в пайплайне.

Теперь у каждой ноды появился выход «Ошибка» (signal_error) и, если нода завершается с ошибкой, то сигнал передаётся по error-ветке, при этом пайплайн может продолжить выполнение по альтернативному пути. Текст ошибки доступен в переменной__dvt_error_text.

Рассмотрим простой пример. Добавим в пайплайн ноду Execute Python, где укажем 1/0

Теперь для этой ноды активируем переключатели «Показывать SIGNAL порты» и «Показывать VARIABLE порты»

Добавим еще две ноды Execute Python и соединим их следующим образом:

Перейдем к их настройке.

При успешном выполнении первой ноды должна быть активирована верхняя ветка:

  • назовем ее «Execute Python (успешное выполнение)»;

  • запишем в нее следующее: logger.info("SUCSESS"). То есть, в лог будет выведено сообщение «SUCSESS».

В случае ошибки при выполнении первой ноды, пайплайн будет выполняться по ветке, которая подключена к выходу signal_error. Ноду подключенную к этому выходу настроим следующим образом:

  • назовем ее «Execute Python (ошибка)»;

  • запишем: logger.error(f"ERROR:{input_variables.__dvt_error_text}") (то есть данная нода будет выводила в лог текст ошибки с помощью переменной __dvt_error_text).

Теперь запустим получившийся пайплайн и откроем консоль, видим, что произошла ошибка и ее текст ошибки выведен в логи проекта.