Не работает перехват ошибок (Notice) в PHP 5.4.4 и Yii2

Проблема:

Если в контроллере Yii фреймворка второй версии, написать следующий код:

[code]

$notExists->anyMethod();

[/code]

То результатом выполнения будет не вывод исключения (Exception), а пустая страница.

Изучив данную проблему в дебагере, я пришел к выводу, что проблема в коде фреймворка, а именно в файле: \yii\base\ErrorHandler

[code]

public function handleError($code, $message, $file, $line)
{
    if (error_reporting() & $code) {

        // -- тут был некоторый код

        throw $exception;  // в этом месте выполнение скрипта останавливается

[/code]

Чтобы получить корректный вывод данной ошибки в Yii2, нужно заменить:

[code] throw $exception; [/code] на [code] $this->handleException($exception); [/code] Данный код вызывает исключение: PHP Notice – Undefined variable: notExists. Если аналогичное исключение вызвать другим кодом, например: [code] $i = $notExists; [/code] то фреймворк корректно отображает страницу с ошибкой и без модификаций.

Как оказалось, проблема была в версии PHP, и после установки свежей версии (5.4.27) всё заработало. Обновите PHP, если столкнулись с этой, или аналогичной проблемой.

03.04.2014