Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Será que eu achei mais um bug no PHP? :rolleyes:
O caso é com a ErrorException, que eu conjunto com set_error_handler() permite transformar a bagunça que algumas funções do PHP mostram na tela numa coisa mais sóbria.
O manual não considera, ou sequer deixa claro, que um handler customizado não intercepta Fatal Errors, pelo menos não aquele cuja severidade seja E_ERROR (ao que me parece).
Seguindo o próprio exemplo do manual, se substituíssemos aquele strpos() definido propositalmente a falhar por alguma função definida por nós mesmos, também propositalmente inexistente, ao invés de termos uma ErrorException disparada pelo handler, temos um Fatal Error... "normal".
É isso mesmo?
Não é possível dar "catch" em fatal errors usando set_error_handler.
A solução é usar register_shutdown_function.
http://stackoverflow.com/questions/277224/how-do-i-catch-a-php-fatal-error
O manual fala disso aqui: http://www.php.net/set_error_handler