PHP «Исключение не найдено»

У меня есть какой-то смешной вопрос. При попытке понять, почему определенный веб-сайт возвращает http-код 500 в браузер, я нашел сообщение

PHP Fatal error: Class 'MZ\\MailChimpBundle\\Services\\Exception' not found in /var/www/website/vendor/bundles/MZ/MailChimpBundle/Services/MailChimp.php on line 41 

в журнале apache. Глядя на указанную строку:

 throw new Exception('This bundle needs the cURL PHP extension.'); 

Теперь я понимаю, как заставить сайт работать, но я все еще удивляюсь, почему код для исключения исключения (который привел к более полезному сообщению журнала) потерпел неудачу. Что может быть причиной?

MZMailChimpBundle не содержит класс с именем Exception в пространстве имен MZ\MailChimpBundle\Services .

Из-за этого простого факта и сообщения об ошибке, которое должно быть вызвано исключением, связано с проблемой интеграции (проверка библиотеки curl). Я предполагаю, что это ошибка.

Оригинал означал \Exception а не Exception здесь. Это распространенная ошибка, которая может произойти с пространствами имен. Чтобы исправить файл, либо alias / import \Exception as Exception :

 namespace MZ\MailChimpBundle\Services; use Exception; 

и / или изменить new строку в MZMailChimpBundle/Services/MailChimp.php :

 throw new \Exception('This bundle needs the cURL PHP extension.'); 

См. Также связанный с этим вопрос: как использовать «корневое» пространство имен php? и тот, у кого есть одно и то же поле «Namespace \ Example», не найденное сообщение об ошибке: вызов статического метода из класса в другое пространство имен в PHP .

Полагает, что строка пытается выбросить определяемое пользователем исключение в текущем пространстве имен, а не встроенный класс Exception самого PHP