A kivétel erősíti a... kódot
Szigorított PHP hibakezelés, csak haladóknak.
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ű E_NOTICE
-tól is lehal az oldal fatal error-ral, az error_reporting
beállítástól függetlenül. :)
function error_handler($errno, $errstr, $errfile, $errline)
{
throw new ErrorException(
$errstr, 0, $errno,
$errfile, $errline
);
}
set_error_handler('error_handler');
function exception_handler($ex)
{
print('<pre>'.$ex.'</pre>');
}
set_exception_handler('exception_handler');
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:
És hogy miért is lenne hasznos? Elég sokan kikapcsolják az E_NOTICE
-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 php.net-en is olvasható.