Zpracování chyb (error handling)
K čemu je to dobré?
- Error Handling
- vědět, co se stalo - např. zaznamenat do logu
- zotavit se z chyby, pokud je to možné
Konfigurační hodnoty
error_reporting
- jaké chyby se budou oznamovat- konstanty E_* jako bitová maska
display_errors
- zda se budou chyby vypisovat na (chybový) výstuplog_errors
- záznam chyb (na produkci vhodnější neždisplay_errors
)
Vlastní error handler
set_error_handler( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
callable set_exception_handler ( callable $exception_handler )
restore_error_handler()
,restore_exception_handler()
Vlastní error handler
function myErrorHandler($errno, $errstr, $errfile, $errline) {
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting
return;
}
switch ($errno) {
case E_USER_ERROR:
...
}
}
Nezotavitelné chyby
nelze zpracovat vlastním error handlerem
- obvyklé -
E_ERROR
,E_PARSE
- speciální -
E_CORE_ERROR
,E_CORE_WARNING
,E_COMPILE_ERROR
,E_COMPILE_WARNING