обнови до премиум)
При использовании меток скрипт останавливается
-
Собственно в названии все написано. У меня есть функция Main (назовем функция 1 уровня), где есть несколько функций, идущих друг за другом. В одной из функций (назовем функция 2 уровня) есть несколько функций (назовем функция 3 уровня) и бывает в них возникает ошибка и я ее обработал и в случае ошибки он повторяет определенные действия (с помощью меток). Так вот в случае ошибки метка возвращается из функции 3 уровня в начало функции 2 уровня. После того как отрабатывает функция 2 уровня, в 1 уровень уже она не возвращается и скрипт останавливается, не выдавая никаких ошибок. Return не помогает. Как бы это решить?
-
@checkdimon said in При использовании меток скрипт останавливается:
Собственно в названии все написано. У меня есть функция Main (назовем функция 1 уровня), где есть несколько функций, идущих друг за другом. В одной из функций (назовем функция 2 уровня) есть несколько функций (назовем функция 3 уровня) и бывает в них возникает ошибка и я ее обработал и в случае ошибки он повторяет определенные действия (с помощью меток). Так вот в случае ошибки метка возвращается из функции 3 уровня в начало функции 2 уровня. После того как отрабатывает функция 2 уровня, в 1 уровень уже она не возвращается и скрипт останавливается, не выдавая никаких ошибок. Return не помогает. Как бы это решить?
Самое очевидное решение - не использовать метки. А вообще лучше приложите тестовый скрипт повторяющий ошибку
-
@checkdimon said in При использовании меток скрипт останавливается:
Собственно в названии все написано. У меня есть функция Main (назовем функция 1 уровня), где есть несколько функций, идущих друг за другом. В одной из функций (назовем функция 2 уровня) есть несколько функций (назовем функция 3 уровня) и бывает в них возникает ошибка и я ее обработал и в случае ошибки он повторяет определенные действия (с помощью меток). Так вот в случае ошибки метка возвращается из функции 3 уровня в начало функции 2 уровня. После того как отрабатывает функция 2 уровня, в 1 уровень уже она не возвращается и скрипт останавливается, не выдавая никаких ошибок. Return не помогает. Как бы это решить?
Еще одну метку создать, что по окончании функции вернуться обратно.
У меня есть такой баг, но возникает когда функция слишком большая. -
Вообще метки сами по себе не зло, просто на них можно с дуру багов наловить. Как сказали выше метками в в блок else не надо прыгать и из функции в функцию тоже не надо заходить иначе назад скрипт сам дорогу не найдет ). А так метки в бас бывает даже удобно ставить, если с умом )
-
@mordor said in При использовании меток скрипт останавливается:
@UserTrue В крупных проектах - метки опасно применять. И с этим ты вряд ли будешь спорить :D
Буду ) Ничего опасного, если делать как я сказал ) Сами по себе метки багов не имеют!
-
@UserTrue
А вот соглашусь, но тут проблема новички и не не совсем не совсем понимают принцип работы баса. Вроде все так же но пока сам пару раз не обожжешься нихера не понятно. Вернее кажется что понятно ВСЕ. А это плохо. =))
@mordor метки реально выручают и поверьте я сейчас пишу скрипт там и циклы и метки.. в циклах. Так удобнее получается минимум 300 стр кода долой. И оно работает. Главное понять как делать нельзя, а как можно.
ps новичкам не советуют их использовать не потому что они зло. Это инструмент как нож им можно хлеб резать, а можно и не хлеб. Их надо уметь ставить. И знать как применять. Иначе да. все завалишь -
@tts9 Да, было бы хорошо, если бы БАС был более умным, анализировал код и предупреждал о возможных опасностях, а так пока шишек на набьешь не поедешь, а код действительно сокращает и упрощает, потому что на кубиках особо ничего не выдумаешь и метки хоть как-то спасают, раньше тоже боялся меток, приходилось городить лишнии цикл и жесть такая запутанная получалась )
-
Вот два примера как делать не надо
label_1.xml
label_2.xml -
-
@checkdimon said in При использовании меток скрипт останавливается:
Собственно в названии все написано. У меня есть функция Main (назовем функция 1 уровня), где есть несколько функций, идущих друг за другом. В одной из функций (назовем функция 2 уровня) есть несколько функций (назовем функция 3 уровня) и бывает в них возникает ошибка и я ее обработал и в случае ошибки он повторяет определенные действия (с помощью меток). Так вот в случае ошибки метка возвращается из функции 3 уровня в начало функции 2 уровня. После того как отрабатывает функция 2 уровня, в 1 уровень уже она не возвращается и скрипт останавливается, не выдавая никаких ошибок. Return не помогает. Как бы это решить?
Метки это костыль, Но я использовал и работало.
-
@denanotherday said in При использовании меток скрипт останавливается:
Метки это костыль, Но я использовал и работало.
На самом деле циклы, условия, функции это все работает на метках на низком уровне ))) Если цикл и тд потомки костыля, значит они их дети и тоже костыли xDDD
-
@UserTrue said in При использовании меток скрипт останавливается:
@denanotherday said in При использовании меток скрипт останавливается:
Метки это костыль, Но я использовал и работало.
На самом деле циклы, условия, функции это все работает на метках на низком уровне ))) Если цикл и тд, потомки костыля, значит они их дети и тоже костыли xDDD
Не помню когда Out говорил Support не связываться, но заморочился для нас, Спасибо. И повторюсь, у меня работают.
