脚本宝典收集整理的这篇文章主要介绍了php – 在Zend Framework应用程序中从模型/视图/控制器中抛出异常,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如. Zend_Layout组件抛出Zend_Layout_Exception
在我自己的ZF库中,我正在添加自己的ZF组件或扩展现有组件,我正在抛出一个Mylibrary_Exception(它当然不是真的叫:)
我可以看到他们将在ZF 2.0中改变一些
http://framework.zend.com/wiki/display/ZFDEV2/Proposal+for+Exceptions+in+ZF2
我的实际问题是:
在我的控制器/模型/视图中的整个MVC应用程序中,如果我需要抛出异常(这将是罕见的,因为显然我将以不同的方式处理预期的错误) – 但是如果我确实需要抛出异常在这里,采埃孚的最佳做法是什么?
我应该
throw new Exception("this is an exception");
或者我应该在我的ZF模块中创建异常类,类似于ZF库的组织方式.即,每个库组件都有异常类,我是否应该为每个应用程序模块设置异常类?
我以前从未见过有人在ZF做过这样的事情,所以我不确定这是不是一个好主意.
更新:
为了进一步澄清我的问题 – 当在应用程序的MVC部分(而不是库)中引发异常时 – 是否有关于使用特定异常类(如库所做的)与仅使用通用Exception类的约定?
> InvalidUserInputException – 用于用户输入无效值的状态(如eshop中的数量“-1”)
> NotFoundException – 用于未找到内容的状态
>等
将特殊成员变量添加到这些异常(如id或data),并使用它们将异常作为错误消息的传递.
$e = new NotFoundException('There is no user %s in here!'); $e->setUser('Frank'); throw $e; // later in error controller if ($e instanceof NotFoundException) { // set header to 404,display error message,etc }
好的是你可以随意扩展异常并随意在错误控制器中捕获它们(更好的是它使用接口)
class AcceSSDeniedExceptionimplements ILOGableException //... throw new AccessDeniedException(); //in EC if ($e instanceof ILoggableException) { $this->getLogger()->log($e->getLogMessage()); }
以上是脚本宝典为你收集整理的php – 在Zend Framework应用程序中从模型/视图/控制器中抛出异常全部内容,希望文章能够帮你解决php – 在Zend Framework应用程序中从模型/视图/控制器中抛出异常所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。