* Thus wrote Daniel Talsky: >... > The main problem is that when I try something like a failed require() > statement, my custom error reporting function tells me it got an > E_WARNING, but it stops program execution, which is not what the docs > say it should do. > > When I try some other fatal error like trying to call an undefined > function foobar(), then it doesn't run my custom error loggin function > at all, just stops program execution. >... > function pv_shell_error_logger( > $errno, $errstr, $errfile, $errline){ > > switch ($errno){ > > case E_ERROR: > print('E_ERROR'."\n"); > break; > > case E_WARNING: > print('E_WARNING'."\n"); > break; >... > > error_reporting(0); > // set to the user defined error handler > set_error_handler("pv_shell_error_logger", > (E_ALL)); > > // FIRST TEST, PRINTS 'E_WARNING' > // But also stops program execution even though I'm not doing anything. > //require ('foo'); If you notice the warning, its complaining about a file not being able to be opened, not that the required failed. If you dont have your errror_handler defined, php suppresses that warning because it's futile to display since php is exiting anyway. > > // FIRST TEST, PRINTS NOTHING > // And also stops program execution even though I'm not doing anything. > //foobar(); This is simply cause you can't capture a FATAL error. The reason why you can't catch these errors is because it is illegal to execute anymore php code if php is exiting. Curt -- Quoth the Raven, "Nevermore." -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php