<?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>deadlime &#187; kivételek</title>
	<atom:link href="http://deadlime.hu/tag/kivetelek/feed/" rel="self" type="application/rss+xml" />
	<link>http://deadlime.hu</link>
	<description>unexpected terminator</description>
	<lastBuildDate>Mon, 14 May 2012 20:38:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>A kivétel erősíti a... kódot</title>
		<link>http://deadlime.hu/2008/09/22/a-kivetel-erositi-a-kodot/</link>
		<comments>http://deadlime.hu/2008/09/22/a-kivetel-erositi-a-kodot/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 19:15:29 +0000</pubDate>
		<dc:creator>Nagy Krisztián</dc:creator>
				<category><![CDATA[nincs kategória]]></category>
		<category><![CDATA[hibakezelés]]></category>
		<category><![CDATA[kivételek]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://deadlime.hu/?p=131</guid>
		<description><![CDATA[A szokásos "napi" php.net böngészgetésem során bukkantam rá a lentebb olvasható kódrészletre (bár nem egy bonyolult dolog, de mégsem jutott volna magamtól eszembe), amit szerintem kötelezővé kellene tenni minden egyes PHP alapú alkalmazás fejlesztési időszaka alatt. A kód nem csinál mást, mint hogy minden hibát kivétellé alakít át, így ha nincsenek elkapva, akkor egy egyszerű [...]]]></description>
			<content:encoded><![CDATA[<p>A szokásos "napi" <a href="http://php.net/">php.net</a> böngészgetésem során bukkantam rá a lentebb olvasható kódrészletre (bár nem egy bonyolult dolog, de mégsem jutott volna magamtól eszembe), amit szerintem kötelezővé kellene tenni minden egyes PHP alapú alkalmazás fejlesztési időszaka alatt. A kód nem csinál mást, mint hogy minden hibát kivétellé alakít át, így ha nincsenek elkapva, akkor egy egyszerű <code>E_NOTICE</code>-tól is lehal az oldal fatal error-ral, az <code>error_reporting</code> beállítástól függetlenül. :)</p>

<pre class="code prettyprint lang-php">function error_handler($errno, $errstr, $errfile, $errline)
{
    throw new ErrorException(
        $errstr, 0, $errno,
        $errfile, $errline
    );
}
set_error_handler('error_handler');</pre>

<p>Egyéni ízlés kérdése, de én még az alábbi kóddal kiegészíteném, hogy fatal error-ok helyett inkább valami olvasható dolgot kapjak:</p>

<pre class="code prettyprint lang-php">function exception_handler($ex)
{
	print('&lt;pre&gt;'.$ex.'&lt;/pre&gt;');
}
set_exception_handler('exception_handler');</pre>

<p>És hogy miért is lenne hasznos? Elég sokan kikapcsolják az <code>E_NOTICE</code>-ok jelzését még fejlesztés alatt is, mondván hogy az nem számít. Pedig elég sok kisebb hibára (pl. változó név vagy tömb kulcs elgépelésekre) hívhatná fel a figyelmet, amik így csak a tesztelési időszakban derülnek ki (ha kiderülnek). Emellett biztonsági haszna is van, mint az <a href="http://www.php.net/manual/en/security.errors.php">a php.net-en is olvasható</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://deadlime.hu/2008/09/22/a-kivetel-erositi-a-kodot/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

