Плагин не возвращает значение в случае ошибки

Riddick

Client
Регистрация
09.12.2015
Сообщения
21
Реакции
0
Баллы
1
Суть проблемы в том, что когда делаешь проект, при вызове любого исключения - всегда идет по красной ветке и попадает в BadEnd, где мы можем обработать результат. Но вот когда сохраняешь проект, как плагин и вставляешь его в другой шаблон - то отладка по красной ветке не работает! Плагин не возвращает значения. Очень неудобно, когда нужно, что бы плагин всегда выполнялся по зеленой ветке, а при ошибке попадал в BadEnd и возвращал данные в переменные для последующей обработки уже в шаблоне.
 

Вложения

  • test.zip
    test.zip
    28,3 KB · Просмотры: 5
Это не баг, так и задумывалось изначально. Работает по таком же принципу, как и в других экшенах. Если стандартное действие завершается ошибкой, то в переменную тоже ничего не возвращается. Поэтому перенесу в раздел предложений.

Тем не менее, я понимаю для чего Вам это нужно.
На текущий момент Вы можете сделать потенциально ошибочное место в плагине "Необязательным". Это позволит ему всегда завершаться по зеленой ветке.

LlhELBG.png
 
Я себе плагин, отчет об ошибках собрал, думал вставлять буду, в другие шаблоны, планировал, плагин с полным отчетом до трех вкладок, теперь приходится из одно все копировать
1595312808262.png
 
Я себе плагин, отчет об ошибках собрал, думал вставлять буду, в другие шаблоны, планировал, плагин с полным отчетом до трех вкладок
Не совсем понял, Вы не пользуетесь плагином потому что он работает с ошибками, которые не возвращаются или из-за того, что какие-то действия в плагине работают не так, как Вам нужно?
 
Не совсем понял, Вы не пользуетесь плагином потому что он работает с ошибками, которые не возвращаются или из-за того, что какие-то действия в плагине работают не так, как Вам нужно?
Нет. Я на оборот, собрал шаблон, плагин, с BadEnd и хотел его использовать как плагин, шаблон в шаблоне.
Да вот пример и хотел сохранить как плагин)
 

Вложения

Но теперь понимаю, почему так не получится, этот плагин он все равно шаблон отдельный, так не получится.
Все получится. Проблема заключается в том, что Вы неправильно используете плагин в рамках этой задачи.
Bad End в плагине обрабатывает ошибки внутри плагина. Чтобы обработать ошибки шаблона с помощью плагина, необходимо его связать с Bad End'ом проекта. Надеюсь понятно объяснил :-)

Работа шаблона, как и плагина всегда начинается со Start'a, поэтому необходимо сделать так:
mcAeSkG.png


А в нужном проекте добавить его после Bad End'a:

VVWSvtZ.png


Учтите, что в плагине обязательно должен быть интерфейс, созданный через BotUI.
 
  • Спасибо
Реакции: Roman48
Это не баг, так и задумывалось изначально. Работает по таком же принципу, как и в других экшенах. Если стандартное действие завершается ошибкой, то в переменную тоже ничего не возвращается. Поэтому перенесу в раздел предложений.

Тем не менее, я понимаю для чего Вам это нужно.
На текущий момент Вы можете сделать потенциально ошибочное место в плагине "Необязательным". Это позволит ему всегда завершаться по зеленой ветке.

LlhELBG.png

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

C#:
Развернуть Свернуть Копировать
if (<условие истинно и все плохо>)
{
    project.Variables["Статус"].Value = "Сюда пишем статус";
    project.Variables["Инфо"].Value = "Сюда пишем саму ошибку";
    // Вылетаем по красной ветке
    throw new Exception();
}

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

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)