Zend框架如何处理异常


Zend framework how to handle exceptions

在下列情况下抛出异常的最佳实践是什么:

我的URL结构是:/文章/视图/id/1

我的控制器:AticlesController

这个控制器加载一个Mapper模型:Application_Model_Mapper_Articles

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

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

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

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

你可以从模型抛出一个异常(不是Zend_Controller_Action_Exception,但一些更精确地描述你的问题),在控制器中捕获它,并在此基础上决定你是否要抛出Zend_Controller_Action_Exception

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