2

我目前正在开发一个基于 Zend 1.11 的项目,我需要在其中捕获与数据库相关的异常并在发生异常时显示通知。不用说我对 Zend 框架完全陌生......

从我在 ErrorController 中定义的默认操作中看到的内容来看,我不知道如何实现这一点:

class ErrorController extends Zend_Controller_Action
{
    private $logPriority_;

    public function errorAction()
    {
        $errors = $this->_getParam('error_handler');

        if (!$errors || !$errors instanceof ArrayObject)
            $this->_forward('notfound','error');

        switch ($errors->type) {
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                // 404 error -- controller or action not found
                $this->_forward('notfound','error');
                break;
            default:
                // application error
                break;
        }

        $this->getResponse()->setHttpResponseCode(500);
        $this->view->message = '500 Internal Server Error';
        $this->logErrors(Zend_Log::CRIT);
    }
    // ...

我应该在哪里以及如何处理这个问题?

4

1 回答 1

2

你可以检查 Zend_Db_Exception 是否被抛出:

if($errors->exception and $errors->exception instanceof Zend_Db_Exception) {
    // do something
}
于 2013-08-19T12:56:10.510 回答