PHP сообщество

любители кода :)

exception && date

Bloged in Без рубрики от admin Четверг Октябрь 4, 2007 at about 9:14 дп

доброго времени суток.. вот тут http://community.livejournal.com/ru_php/1092135.html?thread=15068199#t15068199 люди советуют делать замечательную вещь, а именно:

function exceptions_error_handler($severity, $message, $filename, $lineno) {
    throw new ErrorException($message, 0, $severity, $filename, $lineno);
}

set_error_handler('exceptions_error_handler');

Все бы хорошо, но у меня такая конструкция не заработала выкидывает:
Fatal error: Exception thrown without a stack frame in Unknown on line 0.
exception_handler у меня свой, в нем вызывается статический метод класса Debug, в этом методе есть такой вот код

$date = date('r');

если его закоментировать, то все работает как надо, если же раскоментировать, то выводится такая ошибка.

UPDATE: gmdate работает почему-то, странно потому, что в ext/date/php_date.c написано вот так вот:

/* {{{ proto string gmdate(string format [, long timestamp])
   Format a GMT date/time */
PHP_FUNCTION(gmdate)
{
        php_date(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
}
/* }}} */

Никто не сталкивался с такой проблеммой? Да, PHP 5.2.2-pl1-gentoo и такая ошикбка появляется только при использовании mod_php, в cli все работает замечательно.

если кому интерено под катом рабочий код для воспроизведения:

class Debug {
	public static function writeLog($msg) {
		$date = date('r');
		echo 'Debug::writeLog';
	}
}

class ErrorHandlers {
	public static function exceptionHandler($e) {
		Debug::writeLog($e->getMessage());
	}
	public static function errorHandler($errno, $errstr, $errfile, $errline) {
	    throw new Exception($errstr, $errno);
	}

}

set_error_handler(array('ErrorHandlers', 'errorHandler'));
set_exception_handler(array('ErrorHandlers', 'exceptionHandler'));

Комментариев нет

Комментариев нет.

Извините, комментирование на данный момент закрыто.