由于致命错误,Zend Stack Trace未显示

时间:2013-09-26 19:13:03

标签: php zend-framework zend-mail

我有一个Zend 1.11应用程序,当出现任何错误时,它会给我一个类似的致命错误

错误如下:

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应用程序上的邮件无关。任何建议都会有帮助。感谢

1 个答案:

答案 0 :(得分:3)

在查看你的callstack时,你的应用程序中的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 

这会将任何错误抛给屏幕,而不是试图处理它们。