<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main? форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 16:10:42 +0300</pubDate>
		<item>
			<title>Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13940/topic1225/">Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_M7PyrIUF" href="/user/1604/" bx-tooltip-user-id="1604">Вячеслав</a>,Спасибо, это еще лучше чем сказал <noindex><a href="https://forum.quik.ru/user/47/" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex>, Надо будет попробовать. <br />
			<i>12.03.2016 18:49:44, Ярослав С.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13940/topic1225/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13940/topic1225/</guid>
			<pubDate>Sat, 12 Mar 2016 18:49:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13841/topic1225/">Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_3tWtd8YT" href="/user/389/" bx-tooltip-user-id="389">Yaroslav1357</a>, в lua уже есть подобный функционал (исключения)
====code====
<pre>error("Сообщение об ошибке");</pre>
=============
как раз моментально прекратит выполнение скрипта.<br /><br />Чтобы перехватывать исключения есть метод pcall
====code====
<pre>function bad(str)
&nbsp;&nbsp;&nbsp;&nbsp;message(str, 1);
&nbsp;&nbsp;&nbsp;&nbsp;local t
&nbsp;&nbsp;&nbsp;&nbsp;t&#91;1&#93; = nil;
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;local success, err = pcall(bad, "test string");
&nbsp;&nbsp;&nbsp;&nbsp;if not success then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Error: " .. err);
&nbsp;&nbsp;&nbsp;&nbsp;end
end
</pre>
=============
Сразу замечу, что в качестве аргумента метода error() можно передавать любой Lua тип. Он придёт во втором результате pcall без изменений.<br /><br />Кроме того, нужно иметь в виду, что QLua вызывает каждый callback, метод main, и инициализацию нашего скрипта через тот же pcall (через Си-функцию lua_pcall, если быть совсем точным), т.е. QLua таким же образом получает сообщение об ошибке в нашем скрипте. <br />
			<i>10.03.2016 13:32:46, Вячеслав.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13841/topic1225/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13841/topic1225/</guid>
			<pubDate>Thu, 10 Mar 2016 13:32:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11144/topic1225/">Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Все спасибо.<br />Для меня более действенно будет как сказал <noindex><a href="https://forum.quik.ru/user/47/" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex>.<br />Второй вариант действенен для циклических операций, у меня один раз выполняется и все. <br />
			<i>28.12.2015 10:22:37, Yaroslav1357.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11144/topic1225/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11144/topic1225/</guid>
			<pubDate>Mon, 28 Dec 2015 10:22:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11131/topic1225/">Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>is_run = true

function average_trend() 
-- здесь идет проверка условий 
if фатальное условие then 
&nbsp;&nbsp;&nbsp;&nbsp;is_run = false
&nbsp;&nbsp;&nbsp;&nbsp;return
end
-- здесь продолжается выполнение 
&nbsp;&nbsp;&nbsp;return nil 
end

function main()
&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;-- здесь делаем что-то полезное, но не навсегда!
&nbsp;&nbsp;&nbsp;&nbsp;-- чтобы цикл работал, т.е. делаем порциями
&nbsp;&nbsp;&nbsp;&nbsp;sleep(200)
&nbsp;&nbsp;end
end
</pre>
============= <br />
			<i>27.12.2015 12:08:10, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11131/topic1225/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11131/topic1225/</guid>
			<pubDate>Sun, 27 Dec 2015 12:08:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11129/topic1225/">Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Любое исключение прервет выполнение скрипта<br /><br />a = nil<br />b=a&#91;1&#93; <br />
			<i>26.12.2015 21:37:17, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11129/topic1225/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11129/topic1225/</guid>
			<pubDate>Sat, 26 Dec 2015 21:37:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message11127/topic1225/">Как принудительно остановить скрипт qlua программно из скрипта до окончания функции main?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я знаю как остановить скрипт lua с помощью return, но это возможно сделать только внутри функции main.<br />А вот как остановить весь скрипт через подпрограмму, которую я создал, например:<br /><br />------------Созданная мною функция-----------------------------------------------<br />function average_trend()<br />-- здесь идет проверка условий <br /><B>-- здесь надо остановить весь скрипт из-за фатального несоответствия</B><br />-- здесь продолжается выполнение<br />	return nil<br />end<br />----------------------------------------------------------------------------------------------<br /><br />-----------Стандартная функция, основное выполнение программы-------<br />function main()<br />-- здесь идет проверка условий <br />return nil &nbsp;-- останов скрипта из-за фатального несоответствия<br />-- здесь продолжается выполнение<br />end<br />---------------------------------------------------------------------------------------------- <br />
			<i>26.12.2015 18:29:55, Yaroslav1357.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message11127/topic1225/</link>
			<guid>http://forum.quik.ru/messages/forum10/message11127/topic1225/</guid>
			<pubDate>Sat, 26 Dec 2015 18:29:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
