I already read th page of the manual, but i still don't understand a lot of
things. Below you will find a simple code that i ade for understanding more
about this. In the code i'm triggering an error of type "E_USER_ERROR", so now
i'm wondering why it is not considered as E_USER_ERROR in set_error_handler().
And if somebody can suggest an error (something real not just trigger_error)
that can be intercepted by set_error_handler(), this will be very useful.here
is the code:
<?php
function error_handler($errno, $errstr, $filename, $lineno, &$context)
{
echo $errno. "<br>";
echo $errstr. "<br>";
switch($errno) {
case E_USER_ERROR:
$str = "";
$str = "ERROR MESSAGE: ". $errstr;
$str .= "<br>The application will be stopped just after the
following error message:<br>";
$str.= "<br>File: ". $filename;
$str.= "<br>Line number: ". $lineno;
$GLOBALS['toto'] = $str;
//return $GLOBALS['error'];
break;
case E_USER_WARNING:
echo "ERROR MESSAGE: ". $errstr;
echo "<br>The application will continue but there is a
warning:<br>";
echo "<br>File: ". $filename;
echo "<br>Line number: ". $lineno;
break;
case E_USER_NOTICE:
echo "ERROR MESSAGE: ". $errstr;
echo "<br>The application will continue but there is a
notice:<br>";
echo "<br>File: ". $filename;
echo "<br>Line number: ". $lineno;
break;
}
}
echo "Testing set_error_handler<br><br><br>";
error_reporting(E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE);
set_error_handler('error_handler');
ini_set('error_reporting', 0);
trigger_error("The string for testing the error", E_USER_ERROR);
?>
----- Original Message ----
From: Richard Heyes <[EMAIL PROTECTED]>
To: It Maq <[EMAIL PROTECTED]>
Cc: [email protected]
Sent: Thursday, March 13, 2008 11:00:30 AM
Subject: Re: [PHP] Intercepting errors
> I'am already using that. When i call trigger_error the function set
> in set_error_handler handles the error. but now i don't know if this
> will handle all the other errors that i don't know about in case they
> happen. Is there anyway to test that?
Read the manual page. I believe it handles all except things like parse
errors:
"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."
Oh and Stephane: this is a mailing list. If you want off you can go to
http://www.php.net.
--
Richard Heyes
Employ me:
http://www.phpguru.org/cv
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php