<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 26 Apr 2026 09:37:41 +0300</pubDate>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46139/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_J78GcMID" href="/user/674/" bx-tooltip-user-id="674">Александр</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/19/" target="_blank" rel="nofollow">Egor Zaytsev</a></noindex> написал:<br /> &nbsp;<br />====quote====<br /> <noindex><a href="/user/674/" target="_blank" rel="nofollow">Александр</a></noindex> &nbsp;написал:<br />1. Можно ли сделать в квике режим (errorstop=true/false), чтобы luaL_error не останавливала скрипт, а выводила ошибку в окно &quot;Ошибки выполнения скрипта&quot;<br />2. Сообщения переданные в message с icon_type также отображались в окне &quot;Ошибки выполнения скрипта&quot;<br />=============<br /> &nbsp;Добрый день. <br /><br /><br />Как мы поняли Вы хотите именно сообщение в окне запуска скриптов выводит, в текущей реализации такой возможности нет. Только функция message() есть. Можем зарегистрировать пожелание на добавление функции вывода сообщений в основное окно запуска скриптов.<br />=============<br /> Да, это было бы замечательно<br />=============<br /><br /> Ваше пожелание зарегистрировано. &nbsp;Мы постараемся рассмотреть его и &nbsp;сообщить Вам результаты анализа. Впоследствии, по результатам анализа, &nbsp;будет приниматься решение о реализации пожелания в будущих версиях ПО. <br />
			<i>10.06.2020 15:33:50, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46139/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46139/topic5546/</guid>
			<pubDate>Wed, 10 Jun 2020 15:33:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46131/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_yePyoAKU" href="/user/19/" bx-tooltip-user-id="19">Egor Zaytsev</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/674/" target="_blank" rel="nofollow">Александр</a></noindex> написал:<br />1. Можно ли сделать в квике режим (errorstop=true/false), чтобы luaL_error не останавливала скрипт, а выводила ошибку в окно &quot;Ошибки выполнения скрипта&quot;<br />2. Сообщения переданные в message с icon_type также отображались в окне &quot;Ошибки выполнения скрипта&quot;<br />=============<br /> Добрый день. <br /><br /><br />Как мы поняли Вы хотите именно сообщение в окне запуска скриптов выводит, в текущей реализации такой возможности нет. Только функция message() есть. Можем зарегистрировать пожелание на добавление функции вывода сообщений в основное окно запуска скриптов.<br />=============<br />Да, это было бы замечательно <br />
			<i>10.06.2020 14:42:28, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46131/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46131/topic5546/</guid>
			<pubDate>Wed, 10 Jun 2020 14:42:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46117/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_UY6S2i2L" href="/user/674/" bx-tooltip-user-id="674">Александр</a> написал:<br />Квик прибивает скрипт, в итоге после ошибки происходят утечки данных в самописных библиотеках.<br />=============<br />Да, такое было от 8.2 (если не ошибаюсь) и до 8.5 включительно, в 8.6 поправили и из мейна выходит с очисткой. Колбеки надо заворачивать в pcall и при ошибке прибиваться самостоятельно, квик даже теоретически не имеет возможности прибить мейн кроме как через TerminateThread, а это еще хуже, чем игнорировать ошибки в колбеках. Чтобы это дело четко отработать на всех этапах, надо:<br />1) создать глобальную табличку с метаметодом __gc.<br />2) ошибку в OnInit ловим pcall&#39;ом и откладываем до мейна (сохраняем хоть в ту же глобальную табличку).<br />3) все колбеки заворачиваем в pcall, ошибку из любого колбека редиректим в мейн и либо ставим глобальный флаг &quot;игнорировать колбеки&quot;, либо заменяем их все на заглушки.<br />4) в мейне первым делом проверяем, не было ли ошибки в OnInit (сохранена в п.2), если была - бросаем ее же снова уже из мейна.<br />5) далее у меня почти всегда цикл сообщений, иногда ожидание на объектах, так что как редиректить ошибку из колбека проблемы нет; по получении ошибки опять же просто кидаем ее снова уже из мейна.<br />6) ну и зачистка в __gc из п.1 всегда одна и та же, хоть там ошибка, хоть там нормальное завершение. <br />
			<i>10.06.2020 11:40:14, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46117/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46117/topic5546/</guid>
			<pubDate>Wed, 10 Jun 2020 11:40:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46113/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4fEfu06t" href="/user/674/" bx-tooltip-user-id="674">Александр</a> написал:<br />1. Можно ли сделать в квике режим (errorstop=true/false), чтобы luaL_error не останавливала скрипт, а выводила ошибку в окно &quot;Ошибки выполнения скрипта&quot;<br />2. Сообщения переданные в message с icon_type также отображались в окне &quot;Ошибки выполнения скрипта&quot;<br />=============<br />Добрый день. <br /><br /><br />Как мы поняли Вы хотите именно сообщение в окне запуска скриптов выводит, в текущей реализации такой возможности нет. Только функция message() есть. Можем зарегистрировать пожелание на добавление функции вывода сообщений в основное окно запуска скриптов. <br />
			<i>10.06.2020 10:48:58, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46113/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46113/topic5546/</guid>
			<pubDate>Wed, 10 Jun 2020 10:48:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46112/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JaPxuULW" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/674/" target="_blank" rel="nofollow">Александр</a></noindex> написал:<br />Сообщения об ошибках в этом окне более информативны.<br />=============<br /> Они дословно те же самые, что в окне сообщений, разве нет? Тут подмывает пошутить типа &quot;а зачем вы пишете скрипты с ошибками&quot;, но я по-другому сформулирую: не первый раз вижу, что люди рассматривают ошибку в скрипте как один из допустимых путей. Это в корне неправильный подход, ошибка в скрипте - это конец, этого не должно случаться никогда, кроме как в процессе разработки. Там, где теоретически возможны ошибочные ситуации, надо или проверять возвраты функций, или использовать pcall (и в случае ошибки обязательно убеждаться, что поймали именно ожидаемую, а не что-то еще, прежде чем принять решение о продолжении выполнения), все остальное должно немедленно крэшить скрипт, потому что он &nbsp;неизвестно что &nbsp;делает. При этом есть еще направление &quot;зачистка при ошибке&quot;, когда нам, в общем-то, все равно, &nbsp;какая именно &nbsp;ошибка случилась, наша задача сохранить консистентность внешнего по отношению к скрипту состояния, а дальше все тот же крэш. Вот с учетом всего изложенного ваш вопрос номер раз выглядит странно. А номер два - нормально, удобная фича могла бы быть.<br />=============<br />Как раз есть проблема очистки после ошибки. Квик прибивает скрипт, в итоге после ошибки происходят утечки данных в самописных библиотеках. <br />
			<i>10.06.2020 10:43:04, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46112/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46112/topic5546/</guid>
			<pubDate>Wed, 10 Jun 2020 10:43:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46106/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_pU8pu9HB" href="/user/674/" bx-tooltip-user-id="674">Александр</a> написал:<br />Сообщения об ошибках в этом окне более информативны.<br />=============<br />Они дословно те же самые, что в окне сообщений, разве нет? Тут подмывает пошутить типа &quot;а зачем вы пишете скрипты с ошибками&quot;, но я по-другому сформулирую: не первый раз вижу, что люди рассматривают ошибку в скрипте как один из допустимых путей. Это в корне неправильный подход, ошибка в скрипте - это конец, этого не должно случаться никогда, кроме как в процессе разработки. Там, где теоретически возможны ошибочные ситуации, надо или проверять возвраты функций, или использовать pcall (и в случае ошибки обязательно убеждаться, что поймали именно ожидаемую, а не что-то еще, прежде чем принять решение о продолжении выполнения), все остальное должно немедленно крэшить скрипт, потому что он <I>неизвестно что</I> делает. При этом есть еще направление &quot;зачистка при ошибке&quot;, когда нам, в общем-то, все равно, <I>какая именно</I> ошибка случилась, наша задача сохранить консистентность внешнего по отношению к скрипту состояния, а дальше все тот же крэш. Вот с учетом всего изложенного ваш вопрос номер раз выглядит странно. А номер два - нормально, удобная фича могла бы быть. <br />
			<i>09.06.2020 19:27:47, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46106/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46106/topic5546/</guid>
			<pubDate>Tue, 09 Jun 2020 19:27:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46099/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_SJoVXGtV" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/674/" target="_blank" rel="nofollow">Александр</a></noindex> написал:<br />чтобы luaL_error не останавливала скрипт<br />=============<br /> По дизайну lua_error не должна возвращать управление. Отсюда следует, что она сразу ломает (как минимум) тот блок, в котором была вызвана. Отсюда следует ответ, что продолжить выполнение с места вызова lua_error в принципе невозможно, блок уже сломан, состояние потеряно. Но вы сами можете поймать ошибку с помощью pcall и дальше уже решить, продолжать или нет.<br />=============<br />Могу поймать, но тогда нет возможности вывести сообщение об ошибке в окно &quot;Ошибки выполнения скрипта&quot;. Сообщения об ошибках в этом окне более информативны. <br />
			<i>09.06.2020 16:44:06, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46099/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46099/topic5546/</guid>
			<pubDate>Tue, 09 Jun 2020 16:44:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46096/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_vN65y7Mn" href="/user/674/" bx-tooltip-user-id="674">Александр</a> написал:<br />чтобы luaL_error не останавливала скрипт<br />=============<br />По дизайну lua_error не должна возвращать управление. Отсюда следует, что она сразу ломает (как минимум) тот блок, в котором была вызвана. Отсюда следует ответ, что продолжить выполнение с места вызова lua_error в принципе невозможно, блок уже сломан, состояние потеряно. Но вы сами можете поймать ошибку с помощью pcall и дальше уже решить, продолжать или нет. <br />
			<i>09.06.2020 16:13:36, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46096/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46096/topic5546/</guid>
			<pubDate>Tue, 09 Jun 2020 16:13:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46091/topic5546/">Можно ли сделать в квике режим, чтобы luaL_error не останавливала скрипт</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			1. Можно ли сделать в квике режим (errorstop=true/false), чтобы luaL_error не останавливала скрипт, а выводила ошибку в окно &quot;Ошибки выполнения скрипта&quot;<br />2. Сообщения переданные в message с icon_type также отображались в окне &quot;Ошибки выполнения скрипта&quot; <br />
			<i>09.06.2020 14:17:37, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46091/topic5546/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46091/topic5546/</guid>
			<pubDate>Tue, 09 Jun 2020 14:17:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
