Cliff Hirsch wrote:
The error handler on my production server has stopped working. I ran some
code to test it and am completely stuck. The trigger error line below works
just fine. But php isn¹t directing it¹s errors to the error handler.
blasasdfsdfgorg{; just stops dead. foobar(); which should also throw an
error since it doesn¹t exist, also doesn¹t get caught by the error handler.
Hi Cliff,
The two types of errors your having trouble with are the type that can't
be handled easily with custom error handlers.
blasasdfsdfgorg(;
This makes a parse error. PHP won't get far enough to use your custom
handler because it will just die. Manual
<http://www.php.net/manual/en/function.set-error-handler.php> says:
The following error types cannot be handled with a user defined
function: *E_ERROR*, *E_PARSE*, *E_CORE_ERROR*, *E_CORE_WARNING*,
*E_COMPILE_ERROR*, *E_COMPILE_WARNING*, and most of *E_STRICT* raised in
the file where *set_error_handler()* is called.
foobar(); (the function that doesn't exist):
I never tried this myself, but this comment
<http://www.php.net/manual/en/function.set-error-handler.php#73239>
suggests that normal custom error handlers won't be able to catch this.
You might be expecting an error message on screen, however, or at least
something besides a white page. If you're not getting it, it probably
means that display_errors
<http://www.php.net/manual/en/ref.errorfunc.php#ini.display-errors> is
turned off.
Things were working until a few weeks ago and I can¹t think of any major
changes since then.
Is it possible you weren't testing for parse errors and "call to
undefined function" errors back then?
- Allen
--
Allen Shaw
slidePresenter (http://slides.sourceforge.net)
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php