PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
Отличная ошибка, на которую обычно просто «забивают», т. к. не понятно, где и что искать.
А ошибка вызвана тем, что в кастомном обработчике исключений происходит исключение, после чего php прерывает процесс с таким замечательным и информативным сообщением об ошибке.
В моём случае это было своё расширение для класса DateTime
public function __construct( $Time = 'now', DateTimeZone $Timezone = null )
{
// PHP 5.3.3 имеет этот баг:
// @link https://bugs.php.net/bug.php?id=52063
// поэтому пишем странное:
if ( ! empty( $Timezone ) ) {
parent::__construct( $Time, $Timezone );
}
else {
parent::__construct( $Time );
}
// ещё раз вызываем явно setTimezone, чтобы обойти багу с timestamp - @link http://www.php.net/manual/en/datetime.construct.php#97724
if ( empty( $Timezone ) ) {
$this->setTimezone( new DateTimeZone( 'Europe/Moscow' ) );
}
}
Если не написать тот странный код, то происходило прерывание php-процесса с ошибкой
PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0. У нас такое происходило только на одном из серверов на продакшн, который админы никак не могут обновить до нормальной версии php.
Вот подробное описание, почему так происходит: http://www.php.net/manual/en/function.set-exception-handler.php#68712
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.
PHP Fatal error: [Zend Optimizer] Extension «Zend Optimizer» cannot be loaded twice in Unknown on line 0
Linux CentOS 5