PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
Отличная ошибка, на которую обычно просто «забивают», т. к. не понятно, где и что искать.
А ошибка вызвана тем, что в кастомном обработчике исключений происходит исключение, после чего php прерывает процесс с таким замечательным и информативным сообщением об ошибке.
В моём случае это было своё расширение для класса DateTime
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.
PHP Fatal error: [Zend Optimizer] Extension «Zend Optimizer» cannot be loaded twice in Unknown on line 0
Linux CentOS 5