[thelist] PHP: set_error_handler() and error suppression

Blake haswell00 at gmail.com
Fri Mar 13 20:14:01 CDT 2009

Hi List,

I'm a little confused by the behaviour I'm getting in a script. I'm
writing a class to handle the errors in my app, but my error handler
seems to get triggered even if I suppress an error. Relevant code:

	ini_set('display_errors', 0);

	 * Logs the error and redirects the user
	 * @param int $severity
	 * @param string $message
	 * @param string $filename
	 * @param int $line
	public static function ErrorHandler($severity, $message, $filename, $line) {
		self::$message =
			'Severity: ' . $severity
			. ' Message: ' . $message
			. ' File: ' . $filename
			. ' Line: ' . $line;
		error_log(self::$message, 0);
	 * Attempts to send a brief description of the exception via e-mail,
then logs the exception and redirects the user
	 * @param Exception $e
	public static function ExceptionHandler($e) {
		@mail('email at address.com', 'ERROR: ' . $_SERVER['SERVER_NAME'],
$e->getMessage(), 'From: email at address.com');

I don't have a mail server on my local so mail() should fail, but it
triggers an error even though I've used the error suppression
operator. The error is:

[Sat Mar 14 11:52:18 2009] [error] [client] Severity: 2
Message: mail() [<a href='function.mail'>function.mail</a>]: Failed to
connect to mailserver at &quot;localhost&quot; port 25, verify your
&quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use
ini_set() File: ...\\error.php Line: 42

Any ideas as to why this is happening?

Blake Haswell

More information about the thelist mailing list