Sub*_*net 4 php oop zend-framework exception
我在PHP的Zend Framework中为我的应用程序编写了一些小型库(一堆类).我也一直在库的方法本身捕获这些异常并将它们记录到文件中.
然后我突然遇到了一个问题,即我的主要应用程序使用这些库不会因为错误而退出,即使在我希望它们因致命错误而退出的情况下也是如此.这个问题是下面的代码一直执行到最后 - 它不应该有.
看起来捕获并且可能记录库类中的大多数错误(特殊情况除外)似乎不是一个好习惯.他们应该总是抛出错误吗?这是一个正确的假设吗?
如果有人能为我解答,我会很感激.
在任何语言中,例外的一般哲学是它们传达特殊情况.你应该相应地使用它们.
如果你最终用try块阻止每个函数调用,那么就会出错.异常被精确设计为使错误处理成为逻辑,而不需要程序员跟踪所有可能的错误路径.因此,您应该在可以对其有意义地响应的那些点上精确捕获异常.
如果你想不出更好的事情而不是中止和传播错误,那么抓住异常是没有意义的.另一方面,如果有一些错误你可以明智地做出反应,抓住那些,并重新抛出其他东西.
一个典型的例子是你正在处理大量文件.如果解析逻辑中的任何地方都出现错误,那么即使解析可能会导致许多函数调用失败,也无法做任何事情.但是,在主循环中,您可以try解析每个文件,如果有异常,则捕获该文件,跳过该文件并继续下一个文件.
如果您正在编写库函数,您可能希望在整个函数周围放置一个最终的try块; 但是,这有点取决于你.只需清楚地记录用户对您的库有哪些例外.
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |