Zend框架如何处理异常

时间:2011-07-26 23:03:40

标签: php zend-framework exception

在以下情况下抛出异常的最佳做法是什么:

我的网址结构是: /物品/视图/ ID / 1

我的控制器: AticlesController

此控制器加载Mapper模型: Application_Model_Mapper_Articles

在这个模型中,我汇总了各种数据。我检查了这个模型中的几个标准,以决定抛出404错误或显示文章。

如果我决定抛出错误。我该怎么办?

我的第一个猜测是从模型中抛出它。但是没有默认的'Model_Exception'类,并且存在'Zend_Controller_Action_Exception'。我应该从模型中抛出此异常吗?或者我应该将错误消息从模型传递回控制器然后抛出错误吗?

2 个答案:

答案 0 :(得分:3)

模型本身不应该干扰FrontController,所以是的,从控制器抛出异常。

您可以从模型中抛出异常(不是Zend_Controller_Action_Exception,而是更精确地描述您的问题),在控制器中捕获它并在该基础上决定是否要抛出Zend_Controller_Action_Exception或不。

答案 1 :(得分:0)

您可以创建一个Application_Model_Mapper_Articles_Exception,您可以选择在控制器中处理它并将异常抛出到错误控制器,或者使用您的异常代码来指定要设置的HTTP响应代码的类型。