2013-09-26 6 views
0

У меня есть Zend 1,11 приложение, которое дает мне подобную фатальную ошибку, когда существует какая-либо ошибкаZend Трассировка стека не появляется из-за фатальной ошибки

Ошибка заключается в следующем:

 
Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'No connection could be made because the target machine actively refused it. ' in C:\xampp\php\pear\Zend\Mail\Protocol\Abstract.php:277 
Stack trace: 
#0 C:\xampp\php\pear\Zend\Mail\Protocol\Smtp.php(167): Zend_Mail_Protocol_Abstract->_connect('tcp://localhost...') 
#1 C:\xampp\php\pear\Zend\Mail\Transport\Smtp.php(199): Zend_Mail_Protocol_Smtp->connect() 
#2 C:\xampp\php\pear\Zend\Mail\Transport\Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail() 
#3 C:\xampp\php\pear\Zend\Mail.php(1194): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) 
#4 C:\xampp\htdocs\test2\application\modules\default\controllers\ErrorController.php(153): Zend_Mail->send() 
#5 C:\xampp\htdocs\test2\application\modules\default\controllers\ErrorController.php(66): Default_ErrorController->SendMail('Application err...', 'An error oc...') 
#6 C:\xampp\php\pear\Zend\Controller\Action.php(516): Default_ErrorController->errorAction() 
#7 C:\xampp\php\pear\Zend\Controller\Disp in C:\xampp\php\pear\Zend\Controller\Plugin\Broker.php on line 336 

Это предотвращая появление правильной трассировки стека (т. е. эта ошибка исходила из преднамеренного неправильного использования базы данных, которая обычно генерирует исключение неизвестной БД), и нет никакого отношения к почте в этом приложении PHP. Любые советы помогут. Спасибо

+0

Хм. Это сообщение об ошибке - это трассировка стека. Что именно вы ищете? –

+0

Вы также можете поймать исключение, обернув код вызова в блок try -catch –

+2

Я предполагаю, что исключение обрабатывается Zend, и обработчик ошибок пытается отправить вам сообщение по электронной почте. Однако он не может, поэтому он выплевывает эту ошибку, а не тот, который вам нужен. –

ответ

3

При просмотре вашего стоп-кадра в вашем приложении находится ErrorController, который выдает ошибку.

Я бы предположил, что он пытается отправить вам сообщение об ошибке, а не исключать исключение.

Это, очевидно, должно быть исправлено, но, чтобы увидеть ваши ошибки Теперь попробуйте добавить это в ваш application.ini

resources.frontController.params.displayExceptions = 1 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors   = 1 
phpSettings.error_reporting   = "8191" 
resources.frontController.throwExceptions = true 

Это будет бросать какие-либо ошибки на экране, а не пытаться справиться с ними.

+0

Такая же ошибка. Это из репозитория svn и что репо обычно отправляет сообщения об ошибках сервера/php в группу, поэтому, возможно, это может вызвать проблему? – 6elephants

+1

Посмотрите на метод Default_ErrorController :: SendMail. Это срабатывает, когда обрабатывается исключение. Он пытается отправить кого-то, и не может! –

+0

Да, это так, я прокомментировал функцию sendMail (только для моих локальных целей тестирования), и это сработало благодаря большому количеству! – 6elephants