Поиск экшена

Nastya

Новичок
Регистрация
03.09.2015
Сообщения
27
Благодарностей
1
Баллы
3
Подскажите, пожалуйста код
Нужно, чтобы находился экшен, на котором произошла ошибка, находилась группа с этим экшеном и проект продолжал выполнение с перового экшена в группе
 
  • Спасибо
Реакции: Bot_Sculptor

C2H5OH

Client
Регистрация
30.09.2014
Сообщения
55
Благодарностей
26
Баллы
18
@Nastya, @kibnet здравствуйте! Записал видео специально для Вас. Надеюсь оно будет полезно! Если так, то обязательно подписывайтесь на данный канал, чтобы следить за всеми обновлениями.
 
  • Спасибо
Реакции: samsonnn

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
@Nastya, @kibnet здравствуйте! Записал видео специально для Вас. Надеюсь оно будет полезно! Если так, то обязательно подписывайтесь на данный канал, чтобы следить за всеми обновлениями.
спасибо конечно :D
но видео, для полнейших ньюбов ) ...

я уверен, что тут совсем вопрос в другом, ну по крайней мере для меня, за что я и плюсанул тему. т.к. уверен на 99.9%, что стандартных методов нет для решения этого вопроса.
так вопрос то вот:
у нас есть шаблон, в котором 60 экшенов. Они разбиты на группы 4 группы (по 20шт в 1 группе).
1. нужно, отловить id последней ошибки: ну с этим проблем нет, т.к. есть метод GetLastError . А теперь осталось самое интересное.
2. после выполнения BadEnd чтобы шаблон не завершался , а если есть спец. экшен, куда указываешь этот id ошибки, дальше он определяет ID группы в которую вложен этот экшен и переходит в начало выполнения этой группы.

Но на данный момент я делаю так:
весь шаблон делится на "состояния" - завожу переменную status. К примеру, шаблон имеет 4 статуса (состояния). Состояния меняются, когда пройден определенный этап работы. Нас "выбило" на состоянии #3 (где-то на одном из 20 экшенов, принадлежащих этому статусу), сработал BadEnd , дальше по switch мы сравнили status, он == 3, мы пошли и начали выполнять сначала "группу" экшенов #3.

Беда в том, что BadEnd может сработать только 1 раз, за все время работы шаблона. я так понимаю это сделано, чтобы исключить вечные зацикливания.
 
Последнее редактирование:

C2H5OH

Client
Регистрация
30.09.2014
Сообщения
55
Благодарностей
26
Баллы
18
спасибо конечно :D
но видео, для полнейших ньюбов ) ...

я уверен, что тут совсем вопрос в другом, ну по крайней мере для меня, за что я и плюсанул тему. т.к. уверен на 99.9%, что стандартных методов нет для решения этого вопроса.
так вопрос то вот:
у нас есть шаблон, в котором 60 экшенов. Они разбиты на группы 4 группы (по 20шт в 1 группе).
1. нужно, отловить id последней ошибки: ну с этим проблем нет, т.к. есть метод GetLastError . А теперь осталось самое интересное.
2. после выполнения BadEnd чтобы шаблон не завершался , а если есть спец. экшен, куда указываешь этот id ошибки, дальше он определяет ID группы в которую вложен этот экшен и переходит в начало выполнения этой группы.

Но на данный момент я делаю так:
весь шаблон делится на "состояния" - завожу переменную status. К примеру, шаблон имеет 4 статуса (состояния). Состояния меняются, когда пройден определенный этап работы. Нас "выбило" на состоянии #3 (где-то на одном из 20 экшенов, принадлежащих этому статусу), сработал BadEnd , дальше по switch мы сравнили status, он == 3, мы пошли и начали выполнять сначала "группу" экшенов #3.

Беда в том, что BadEnd может сработать только 1 раз, за все время работы шаблона. я так понимаю это сделано, чтобы исключить вечные зацикливания.
Ваш вопрос понял. Можно конечно сделать это почти как и у Вас это реализованно через связку получить GetLastError при любой ошибке и все выводить на свитч и уже в зависимости от id ошибки идет свой путь. Только не понимаю почему Вам стандартный вариант не подходит чтобы сделать шаблон сейфовым, отследить что за ошибка - и либо пофиксить ее\ либо сделать нужну логику в шаблоне при ее возникновении?
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
Ваш вопрос понял. Можно конечно сделать это почти как и у Вас это реализованно через связку получить GetLastError при любой ошибке и все выводить на свитч и уже в зависимости от id ошибки идет свой путь. Только не понимаю почему Вам стандартный вариант не подходит чтобы сделать шаблон сейфовым, отследить что за ошибка - и либо пофиксить ее\ либо сделать нужну логику в шаблоне при ее возникновении?
...потому, что есть такие ошибки, которые нельзя исправить. Например, такие что возникают из-за плохих прокси. Мы же не будем после каждого экшена перехода на страницу, делать проверку на успех. Если в группе таких экшенов 10. Это банальный пример.
В общем, я знаю о чем говорю, не первый же год с зенно), на сложных,больших проектах это необходимо.
Но разумеется, я не против делать простые "линейные" шабы, как кто-то говорил: меньше когда - меньше багов, нет кода- нет багов )
 

Nastya

Новичок
Регистрация
03.09.2015
Сообщения
27
Благодарностей
1
Баллы
3
спасибо конечно :D
но видео, для полнейших ньюбов ) ...

я уверен, что тут совсем вопрос в другом, ну по крайней мере для меня, за что я и плюсанул тему. т.к. уверен на 99.9%, что стандартных методов нет для решения этого вопроса.
так вопрос то вот:
у нас есть шаблон, в котором 60 экшенов. Они разбиты на группы 4 группы (по 20шт в 1 группе).
1. нужно, отловить id последней ошибки: ну с этим проблем нет, т.к. есть метод GetLastError . А теперь осталось самое интересное.
2. после выполнения BadEnd чтобы шаблон не завершался , а если есть спец. экшен, куда указываешь этот id ошибки, дальше он определяет ID группы в которую вложен этот экшен и переходит в начало выполнения этой группы.

Но на данный момент я делаю так:
весь шаблон делится на "состояния" - завожу переменную status. К примеру, шаблон имеет 4 статуса (состояния). Состояния меняются, когда пройден определенный этап работы. Нас "выбило" на состоянии #3 (где-то на одном из 20 экшенов, принадлежащих этому статусу), сработал BadEnd , дальше по switch мы сравнили status, он == 3, мы пошли и начали выполнять сначала "группу" экшенов #3.

Беда в том, что BadEnd может сработать только 1 раз, за все время работы шаблона. я так понимаю это сделано, чтобы исключить вечные зацикливания.
Да, вопрос Вы поняли верно) Спасибо, пока нет других вариантов сделаю так. А возможно ли сделать, например, код, чтобы при ошибке срабатывал постоянно, т.е несколько раз за проект?
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
Да, вопрос Вы поняли верно) Спасибо, пока нет других вариантов сделаю так. А возможно ли сделать, например, код, чтобы при ошибке срабатывал постоянно, т.е несколько раз за проект?
насколько я знаю, то нет.
BadEnd может сработать только 1 раз, за все время работы шаблона
BadEnd (сфера красная такая:df: ) это глобальная ошибка. Т.е. не обрабатываемое исключение (ну только если ОДИН раз).
А если Вы выведете стрелку по красному выходу любого экшена, то создадите "перехват" ошибки(обработка исключения), в этом случае , конечно, можно делать что угодно и сколько угодно раз.

Но можно делать "не красиво". Т.е. вывести в определенной нужной группе с предполагаемых ошибочных экшенов по красному выходу в switch , который уже и будет делать что угодно и сколько угодно раз, сравнивая status c нужными значениями и т.д.
 
Последнее редактирование:

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