<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mihalytch personal blog &#187; ошибка</title>
	<atom:link href="http://mihalytch.org.ua/tag/oshibka/feed" rel="self" type="application/rss+xml" />
	<link>http://mihalytch.org.ua</link>
	<description>Все о высоких технологиях</description>
	<lastBuildDate>Thu, 20 May 2010 07:56:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Перехват (обработка, отключение) ошибок в JavaScript</title>
		<link>http://mihalytch.org.ua/programming/js/interception-of-errors-in-javascript.html</link>
		<comments>http://mihalytch.org.ua/programming/js/interception-of-errors-in-javascript.html#comments</comments>
		<pubDate>Thu, 16 Oct 2008 15:37:42 +0000</pubDate>
		<dc:creator>Mihalytch</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[xHttprequest]]></category>
		<category><![CDATA[ошибка]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/js/interception-of-errors-in-javascript.html</guid>
		<description><![CDATA[Иногда все-таки возникает потребность перехватить ошибки при выполнении сценария JavaScript, с целью обработать каким либо образом сообщения об ошибке (например, через xHttprequest отправить на сервер и записать в .log файл) либо просто отключить вывод этих сообщений конечному пользователю. Реализуется эта задача очень просто. Для того чтобы просто отключить вывод сообщений об ошибках, достаточно написать одну [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда все-таки возникает потребность перехватить ошибки при выполнении сценария JavaScript, с целью обработать каким либо образом сообщения об ошибке (например, через xHttprequest отправить на сервер и записать в .log файл) либо просто отключить вывод этих сообщений конечному пользователю.<span id="more-61"></span></p>
<p>Реализуется эта задача очень просто.</p>
<p>Для того чтобы просто отключить вывод сообщений об ошибках, достаточно написать одну строку  JavaScript кода:</p>
<pre class="brush: jscript;">
window.onerror=null;
</pre>
<p>Либо мы можем назначить обработчиком ошибок пользовательскую функцию:</p>
<pre class="brush: jscript;">
/* определим функцию обработки ошибок */
function onErrorHandler(msg, url, lno)  {
    /* тут тело обработчика */
   return true;
}

/* теперь  назначаем наш обработчик для события onError   */
window.onerror = onErrorHandler;
</pre>
<img src="http://mihalytch.org.ua/?ak_action=api_record_view&id=61&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/js/interception-of-errors-in-javascript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ошибка: cannot find -lgio-2.0</title>
		<link>http://mihalytch.org.ua/unix/freebsd-error-cannot-find-lgio20.html</link>
		<comments>http://mihalytch.org.ua/unix/freebsd-error-cannot-find-lgio20.html#comments</comments>
		<pubDate>Wed, 30 Jul 2008 07:01:42 +0000</pubDate>
		<dc:creator>Mihalytch</dc:creator>
				<category><![CDATA[UNIX`o подобные]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[ошибка]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/unix/freebsd-error-cannot-find-lgio20.html</guid>
		<description><![CDATA[Буквально вчера устанавливал из портов  xorg-сервер под FreeBSD 7.0. Возникла ошибка следующего содержания: ... /usr/bin/ld: cannot find -lgio-2.0 gmake: *** [libgiofam.la] Error 1 *** Error code 2 ... Начал установку следующим образом: #cd /usr/ports/x11/xorg #make install clean Естественно под root`ом. Оставил на ночь, а на следующий день увидел ошибку, приведенную выше. Решение проблемы оказалось более [...]]]></description>
			<content:encoded><![CDATA[<p>Буквально вчера устанавливал из портов  xorg-сервер под FreeBSD 7.0. Возникла ошибка следующего содержания:</p>
<pre class="brush: bash;">...
/usr/bin/ld: cannot find -lgio-2.0
gmake: *** [libgiofam.la] Error 1
*** Error code 2
...</pre>
<p><span id="more-45"></span></p>
<p>Начал установку следующим образом:</p>
<pre class="brush: bash;">
#cd /usr/ports/x11/xorg
#make install clean
</pre>
<p>Естественно под root`ом. Оставил на ночь, а на следующий день увидел ошибку, приведенную выше. Решение проблемы оказалось более чем простым. Требуется обновить библиотеки glib, выполнив следующие действия:</p>
<p>Предварительно в <em>/usr/ports/devel/glib20/Makefile</em> необходимо добавить параметр:</p>
<pre class="brush: bash;">FORCE_PKG_REGISTER = 1</pre>
<p>Затем:</p>
<pre class="brush: bash;">
#cd /usr/ports/devel/glib20
#make reinstall
</pre>
<p>После того как обновятся библиотеки glib, продолжим установку xorg-server`а, выполним следующие команды:</p>
<pre class="brush: bash;">
#cd /usr/ports/x11/xorg
#make install clean
</pre>
<p>P.S. Начинающим FreeBSD-шникам могу пожелать только терпения и настойчивости. ;)</p>
<img src="http://mihalytch.org.ua/?ak_action=api_record_view&id=45&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/unix/freebsd-error-cannot-find-lgio20.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Обработка ошибок</title>
		<link>http://mihalytch.org.ua/programming/php/error-control.html</link>
		<comments>http://mihalytch.org.ua/programming/php/error-control.html#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:10:26 +0000</pubDate>
		<dc:creator>Mihalytch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ошибка]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/php/%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d0%be%d1%88%d0%b8%d0%b1%d0%be%d0%ba.html</guid>
		<description><![CDATA[В программировании имеют место две основных разновидности ошибок: Внешние ошибки; Логические ошибки. Внешние ошибки - это ошибки, в которых код ведет себя непредвиденным образом вследствие того, что часть программы не работает так, как ожидалось. Например, произошла ошибка при установке соединения с базой данных в том случае, когда для работы кода требуется успешная установка соединения. Логические [...]]]></description>
			<content:encoded><![CDATA[<p>В программировании имеют место две основных разновидности ошибок:</p>
<ol>
<li>Внешние ошибки;</li>
<li>Логические ошибки.</li>
</ol>
<p><span id="more-11"></span><strong>Внешние ошибки</strong> - это ошибки, в которых код ведет себя непредвиденным образом вследствие того, что часть программы не работает так, как ожидалось. Например, произошла ошибка при установке соединения с базой данных в том случае, когда для работы кода требуется успешная установка соединения.</p>
<p><strong>Логические ошибки</strong> - ошибки, возникающие вследствие неверной конструкции кода, или вследствие ошибочной логики, или из-за простейшей ошибки (например, опечатка).</p>
<p><em>Основные отличия между этими категориями ошибок:</em></p>
<ul>
<li>Внешние ошибки возникают всегда, независимо от того, насколько безошибочен разработанный программный код. По отношению к программному коду, они даже не ошибки, поскольку являются внешними факторами по отношению к программному продукту.</li>
<li>Неучтенные в логике кода внешние ошибки могут оказаться дефектами программы.</li>
<li>Логические ошибки гораздо труднее обнаружить, чем внешние ошибки, так как их расположение по определению неизвестно. Чтобы их найти, достаточно реализовать проверку непротиворечивости данных.</li>
</ul>
<p>В PHP имеется встроенная поддержка обработки ошибок. Существует три основных уровня серьезности ошибок:</p>
<ul>
<li>E_NOTICE - незначительные исправимые ошибки, существующие для того, чтобы помочь программисту идентифицировать возможные дефекты кода.</li>
<li>E_WARNING - исправимые ошибки времени выполнения. Они сообщают о нежелательном событии, не прерывая и не изменяя работу сценария.</li>
<li>E_ERROR - неисправимые ошибки. Прерывают работу выполняемого сценария.</li>
</ul>
<p>И еще 5 категорий ошибок, которые возникают несколько реже:</p>
<ul>
<li>E_PARSE - сценарий содержит синтаксическую ошибку и не может пройти синтаксический анализ. Неисправимая ошибка.</li>
<li>E_COMPILE_ERROR - ошибка, возникающая в ядре во время трансляции текста. Также не исправима.</li>
<li>E_COMPILE_WARNING - ошибка, возникшая в ядре во время синтаксического анализа сценария. Исправимая ошибка.</li>
<li>E_CORE_ERROR - неисправимая ошибка времени выполнения, возникающая в ядре.</li>
<li>E_CORE_WARNING - исправимая ошибка времени выполнения, возникающая в ядре.</li>
</ul>
<p>Также существует категория ошибок E_ALL, которая включает в себя все уровни отображаемых ошибок.<br />
В PHP имеется функция trigger_error(), которая дает возможность пользователю генерировать внутри сценария собственные ошибки. Всего три типа ошибок доступных для генерации пользователем:</p>
<ul>
<li>E_USER_NOTICE</li>
<li>E_USER_WARNING</li>
<li>E_USER_ERROR</li>
</ul>
<p>Контроль отображения ошибок возникших в сценарии</p>
<p>Управлять уровнем выводимых ошибок можно с помощью опции error_reporting в конфигурационном файле php.ini.</p>
<p>error_reporting - битовое поле, в котором используются определенные константы.</p>
<p>Например:</p>
<pre>error_reporting = E_ALL - отображать все ошибки.</pre>
<pre>error_reporting = E_ALL ~E_NOTICE - отображать все ошибки кроме E_NOTICE</pre>
<pre>error_reporting = E_ERROR | E_USER_ERROR - отображать E_ERROR или E_USER_ERROR.</pre>
<p>Обратите внимание, что удаление E_ERROR из уровня error_reporting не разрешает игнорировать неисправимые ошибки, а только предотвращает вызов обработчика ошибок!</p>
<p>Варианты обработки ошибок, соответствующих порогу error_reporting:</p>
<ul>
<li>отображение ошибки;</li>
<li>протоколирование ошибки;</li>
<li>игнорировать ошибки;</li>
<li>обрабатывать ошибки.</li>
</ul>
<p>Ни один из вышеперечисленных вариантов обработки ошибок не заменяет другие по важности или функциональности. Каждый из них занимает свое место в системе обработки ошибок.</p>
<img src="http://mihalytch.org.ua/?ak_action=api_record_view&id=11&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/php/error-control.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
