使用服务层时如何处理错误?

时间:2011-05-15 12:55:21

标签: php zend-framework exception-handling software-design service-layer

在我的Zend Framework项目中,我使用了服务层,但是我真的不知道在哪里处理错误。

例如,假设我有UserService::updateUser($data);

如果我有:

$data = array(
   'userId' => 2,
   'firstName' => 'Jane',
   'lastName'  => 'Doe',
);

id为2的用户不存在?

您在何处以及如何处理此类错误?

1 个答案:

答案 0 :(得分:1)

您可以转发到特定的控制器来处理所有业务错误,例如:

if ($error=true)
        return $this->_forward('standarderror', 'businesserror', 'default',
                array('msgtitle' => $this->view->translate('item_not_found'),
                    'msg' => $this->view->translate('item_not_found_msg')));

以及您的BusinesserrorController的样子:

class BusinesserrorController extends Zend_Controller_Action {

public function init() {
    $this->_helper->viewRenderer->setNoRender();
}

public function standarderrorAction() {
    $msgtitle = $this->_getParam('msgtitle');
    $msg = $this->_getParam('msg');

    $this->view->errortitle = $msgtitle;
    $this->view->errormessage = $msg;

    $this->view->nextstep = $this->view->translate('return_to_the_homepage');
    $this->view->nextstepurl = "/";

    echo $this->render('error/businesserror', null, true);
}

}

您也可以参与转发的网址;)