Я не могу поймать php исключения с помощью try .... catch - PullRequest
2 голосов
/ 04 июня 2011

У меня проблема с исключениями PHP. Даже если я попытаюсь выполнить этот код:

try {
    $some->knownMethodWithError();
} catch(Zend_Exception $exp){
    echo 'Error!: ' . $exp->getMessage();
}

На моей веб-странице, обслуживаемой apache / php, всегда отображается ошибка 500. Я имею в виду,

echo 'Error!: ' . $exp->getMessage();

никогда не выполняется. Я тестировал с перенаправлением вместо этого эха, но это не работает. Есть ли какая-то директива php.ini, которая вызывает такое поведение, или это может быть что-то еще?.

Это происходит в моем проекте на основе Zend Framework.

Ответы [ 2 ]

5 голосов
/ 04 июня 2011

Кроме того, ваш код будет ловить только Zend_Exception. Если у вас есть пользовательские исключения, возможно catch (Exception $ e) получит больше шансов поймать их всех

возможно, вы могли бы запустить скрипт с полными журналами. Измените php.ini на сервере в строке:

error_reporting=E_ALL | E_STRICT

или лучше запустить его в среде IDE с помощью отладчика.

3 голосов
/ 04 июня 2011

Ошибка 500 не является исключением PHP, она возникает выше уровня кода. Ошибка 500 означает, что произошла ошибка, когда PHP пытался проанализировать ваш скрипт (возможно). Возможно, в вашем коде есть синтаксическая ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...