PHP5: Почему попытка try / catch не работает?

На моей сборке XAMPP / Win XP PHP5.2.3 не удается поймать какие-либо исключения. Ни один из примеров не работает, и это:

try { throw new Exception('Fail'); } catch (Exception $e) { echo 'Succeed'; } 

… результаты:

Неустранимая ошибка : исключить исключение «Исключение» с сообщением «Fail» в M: \ path \ to \ test.php: 4 Трассировка стека: # 0 {main} выбрано в M: \ path \ to \ test.php в строке 4

Все настройки ошибок PHP кажутся стандартными. Сервер Apache / 2.2.4

Это зависит от сборки eAccelerator в XAMPP. В какой-то момент у него возникли проблемы с оптимизацией операторов try / catch и просто проигнорировали их.

Проблема была в 0.9.5. В настоящее время XAMPP связан с eAccelerator 0.9.5.3, хотя по умолчанию он отключен. Так что это может быть не ваша проблема.

Согласно ChangeLog , XAMPP не использовал PHP 5.2.3 и Apache 2.2.4 в течение долгого времени, что также происходит во время ошибки eAccelerator. Я рекомендую проверить версию eAccelerator и, возможно, обновить XAMPP.

Я получаю «Succeed» как вывод, выполняющий ваш скрипт, как автономный в командной строке, так и через apache на веб-сервере, а также в XAMPPLITE. Dunno, что отличается от вашей настройки