【发布时间】:2011-04-21 01:49:57
【问题描述】:
在 Zend Framework 库中,当前的做法(大约 1.10.8)是库组件抛出扩展 Zend_Exception 的异常。
例如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 应用程序中,如果我需要抛出异常(这种情况很少见,因为显然我将以不同的方式处理预期的错误) - 但如果我确实需要在这里抛出异常,ZF的最佳实践是什么?
我应该只是
throw new Exception("this is an exception");
或者我应该在我的 ZF 模块中创建异常类,类似于 ZF 库的组织方式。即它们为每个库组件都有异常类,我应该为每个应用程序模块设置异常类吗?
应用程序/模块/用户/控制器/UserController.php
应用程序/模块/用户/表单/UserForm.php
应用程序/模块/用户/模型/User.php
应用程序/模块/用户/视图/脚本/index.phtml
application/modules/user/exceptions/Exception.php(User_Exception 类)
application/modules/user/exceptions/SuperexampleException.php(类 User_Exception_Superexample)
我以前从未在 ZF 看到有人做过这样的事情,所以我不确定这是否是个好主意。
更新:
为了进一步澄清我的问题 - 在应用程序的 MVC 部分(而不是库)中引发异常时 - 是否有关于使用特定异常类(如库)与仅使用通用异常类的约定?
【问题讨论】:
标签: php exception zend-framework