所以我的Zend Framework一直拒绝处理异常,尽管我在Google上做了所有人都提出的建议......所以我在这里问我可能会做错什么......针对所有可能性的“未捕获的异常”
我有我的ErrorController.php文件中的应用程序/模块/默认/控制器设置,与此内容:
<?php
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
$error = $this->_getParam('error_handler');
switch ($error->type){
case "EXCEPTION_NO_CONTROLLER":
case "EXCEPTION_NO_ACTION":
$this->getResponse()->setHttpResponseCode(404);
$this->view->title = "Page Not Found";
$this->view->message = "404 - Oops ! You took a wrong turn...";
break;
default:
$this->getResponse()->setHttpResponseCode(500);
$this->view->title = "Unexpected Error";
$this->view->headmessage = "500 - Oops ! Something wrong happened... ";
$this->view->message = $error->exception->getMessage();
break;
}
$this->view->exception = $error->exception;
// pass the request to the view
$this->view->request = $error->request;
}
}
在我的index.php,我只是包括应用程序/ bootstrap.php中包含,除其他事项外:
$front = Zend_Controller_Front::getInstance();
$front->throwExceptions(false);
$front->setControllerDirectory('./application/controllers');
$front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler());
然而,在我的代码,任何时候我打电话,例如:
throw new Zend_Controller_Exception('This page does not exist', 404);
我得到通常恼人的“致命错误:未捕获的异常‘Zend_Controller_Exception’有消息‘此页面不存在’”等等等等..
有什么我做错了吗?我想知道'./application/controllers'是否正确,因为据我所知,我的Zend框架文件夹中没有单个“应用程序”文件夹......但我在网上找不到任何关于它的任何信息!并创建一个把我的ErrorController.php在它导致我到目前为止...
您似乎正在为您的项目使用模块化结构。你有没有在application.ini中的模块目录适当的条目? – mingos 2013-03-06 22:06:24
其实我发现我的问题的来源是我注册了另一个身份验证插件与errorHandler冲突...仍然没有设法修复它。 – SylvainB 2013-03-07 17:17:55