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