最近我一直在开发Zend Framework。在异常处理期间我陷入了混乱。
有谁能让我知道处理例外的最佳地点在哪里?无论是模型还是控制器?它可能是在性能或可用性方面或其他任何方面。
答案 0 :(得分:0)
如果我们想要捕获各种异常,我们最好让我们的模型抛出异常。你也可以阅读这篇文章link
答案 1 :(得分:0)
您应该在控制器中处理异常,因为有时异常的错误消息应该传递给视图。要避免模型和视图之间的依赖关系,您应该在控制器中处理异常。
Zend Framework all ready通过内置的errorController处理异常。您可以通过在配置文件中放置以下行来启用它。
resources.frontController.throwExceptions = 0
此外,如果你想处理自己的异常,而不是在不同的地方处理它们,你可以在一个地方处理它们。像下面的东西。
告诉Zend Framework不处理异常。在您的application.ini
中执行此操作resources.frontController.throwExceptions = 1
在Bootstrap课程中执行以下操作。
定义处理例外的自定义方法。
public function __handleExceptions(Exception $e){
//render a view with a simple error message for the user
//and send an email with the error to admin
}
覆盖Bootstrap类中_bootstrap()
的{{1}}和run()
方法,并捕获在引导过程中或运行应用程序时抛出的异常,并调用异常处理程序,如下所示。
Zend_Application_Bootstrap_Bootstrap
现在,所有例外都会在一个地方处理。