<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Обработка ожидаемых ошибок?]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Обработка ожидаемых ошибок? форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 01 Aug 2026 06:49:54 -0400</pubDate>
		<item>
			<title>Обработка ожидаемых ошибок?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381363">Обработка ожидаемых ошибок?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Да, ошибка приведёт к выходу до следующей строки. Если этого не хочется, тогда нужно использовать синтаксис «:do { /badcommand} on-error={};», как показано выше, вокруг кода, который может вызвать ошибку (и где при этом нужно, чтобы остальной код продолжал выполняться). Что касается документации, <noindex><a href="https://help.mikrotik.com/docs/display/ROS/Scripting" target="_blank" rel="nofollow" >https://help.mikrotik.com/docs/display/ROS/Scripting</a></noindex> описывает синтаксис скриптов, а <noindex><a href="https://help.mikrotik.com/docs/display/ROS/Scripting+examples" target="_blank" rel="nofollow" >https://help.mikrotik.com/docs/display/ROS/Scripting+examples</a></noindex> — примеры скриптов.<br /><br />Однако... в документации порой оставляют тебя в неведении относительно того, как работают конкретные команды — например, что именно может «выкинуть» ошибку, прерывающую выполнение, а что просто вернёт пустую строку или [:nothing]. Например, в первом случае скрипт в SSH остановится, а некоторые «ошибки» проявляются в виде пустой строки или массива. Для каждой команды логично, как она себя ведёт при ошибках, но разные операции или команды иногда обрабатывают ошибки с небольшими нюансами. <br />
			<i>31.08.2023 16:56:00, Amm0.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381363</link>
			<guid>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381363</guid>
			<pubDate>Thu, 31 Aug 2023 16:56:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Обработка ожидаемых ошибок?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381362">Обработка ожидаемых ошибок?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Верно ли, что выполнение скрипта по SSH прекращается при первой же ошибке? Например, при использовании команды export file=foo.bar? Я полный новичок в скриптах Mikrotik, где лучше всего почитать про поведение команд и прочее? Есть ли встроенные мануалы или документация в интернете, которые я просто не нашёл? Спасибо! <br />
			<i>31.08.2023 16:33:00, Xaesar.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381362</link>
			<guid>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381362</guid>
			<pubDate>Thu, 31 Aug 2023 16:33:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Обработка ожидаемых ошибок?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381361">Обработка ожидаемых ошибок?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			С выходом версии v6.2 ситуация изменилась! Загляните в Руководство по скриптам, чтобы узнать, как ловить ошибки во время выполнения:<br /><br />:do {<br /> &nbsp; &nbsp; &nbsp;:put [:resolve <noindex><a href="http://www.example.com%5D;" target="_blank" rel="nofollow" >www.example.com];</a></noindex><br />} on-error={ :put "resolver failed"};<br />:put "lala"<br /><br />вывод:<br /><br />resolver failed<br />lala <br />
			<i>08.08.2015 06:37:00, midenok.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381361</link>
			<guid>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381361</guid>
			<pubDate>Sat, 08 Aug 2015 06:37:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Обработка ожидаемых ошибок?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381360">Обработка ожидаемых ошибок?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Если не считать нескольких заметных исключений, ни в коем случае не делайте предположений о номерах записей — чаще всего они идут не по порядку. <br />
			<i>07.06.2013 11:41:00, psamsig.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381360</link>
			<guid>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381360</guid>
			<pubDate>Fri, 07 Jun 2013 11:41:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Обработка ожидаемых ошибок?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381359">Обработка ожидаемых ошибок?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Не работает (или это я что-то неправильно делаю): catch_script :global return<br />:set return false<br />:global num<br /><br />:put (" &nbsp; пытаюсь решить #".$num)<br />/resolve [/ip firewall address-list get $num comment]<br />:set return true<br /><br />главный скрипт<br />:global num<br />:local i<br />:local x 2<br />:for i from=0 to=$x step 1 do={<br /> &nbsp; :set num $i<br /> &nbsp; :put ("проверяю ".$num)<br /> &nbsp; /sys script run [find name="catch_script"];<br /> &nbsp; :if ($return) do={<br /> &nbsp; &nbsp; &nbsp; :put ($num."= решено");<br /> &nbsp; } else={<br /> &nbsp; &nbsp; &nbsp; :put ($num."= не решено");<br /> &nbsp; }<br />}<br /><br />Результат:<br />проверяю 0<br /> &nbsp; пытаюсь решить #0<br />0= решено<br />проверяю 1<br /> &nbsp; пытаюсь решить #1<br />1= решено<br />проверяю 2<br /> &nbsp; пытаюсь решить #2<br />ошибка: DNS-имя не существует<br />[admin@Morm1] /system script&gt; <br />
			<i>07.06.2013 10:43:00, el_berto.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381359</link>
			<guid>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381359</guid>
			<pubDate>Fri, 07 Jun 2013 10:43:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Обработка ожидаемых ошибок?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381358">Обработка ожидаемых ошибок?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Мне стало интересно, откуда появляются нарушители из моего черного списка, и я попробовал вот что:<br /><br />/ip firewall address-list&gt; :foreach a in=[find where list=blacklist dynamic] do={:put [:resolve [/ip firewall address-list get $a address]] }<br /><br />Скрипт должен был пройтись по динамическим адресам из моего черного списка и, если удастся разрешить их в имя хоста, вывести его. К сожалению, он упал уже на первом адресе, который не удалось разрешить. Возможно, я что-то упускаю, но не смог понять, как заставить скрипт игнорировать ожидаемую ошибку и продолжать работать, как положено.<br /><br />Ведь это вполне обычная задача для скрипта — попытаться определить, какие из адресов валидны, установлены, доступны и так далее. Может, кто-то подскажет? <br />
			<i>31.08.2011 05:09:00, tjc.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381358</link>
			<guid>http://mikrotik.moscow/forum/forum57/83910-obrabotka-ozhidaemykh-oshibok/message381358</guid>
			<pubDate>Wed, 31 Aug 2011 05:09:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
