设为首页 加入收藏

TOP

异常在 PHP 5.3 中的最佳实践(三)
2015-02-02 14:31:53 来源: 作者: 【 】 浏览:19
Tags:异常 PHP 5.3 最佳 实践
er Interface, 用在组件内部的异常既能继承 SPL 的异常类型, 也能在运行时被各种代码捕捉.?我们来看下列代码:


// usage of bracket syntax for brevity
namespace MyCompany\Component {
?
? ? interface Exception
? ? {}
?
? ? class UnexpectedValueException
? ? ? ? extends \UnexpectedValueException
? ? ? ? implements Exception
? ? {}
?
? ? class Component
? ? {
? ? ? ? public static function doSomething()
? ? ? ? {
? ? ? ? ? ? if ($somethingExceptionalHappens) {
? ? ? ? ? ? ? ? throw new UnexpectedValueException('Something bad happened');
? ? ? ? ? ? }
? ? ? ? }
? ? }
?
}


如果调用上面代码中的?MyCompany\Component\Component::doSomething() 函数, doSomething() 抛出的异常可以当作下列异常类型捕捉:?PHP?的?Exception, SPL 的?UnexpectedValueException, SPL 的?RuntimeException,?该组件的MyCompany\Component\UnexpectedValueException,?或该组件的 MyCompany\Component\Exception. 这为捕捉你的类库组件中的异常提供了极大的便利.?此外, 通过分析异常的类型, 我们也能看出某个异常的含义.?


总结


总而言之,本文旨在教大家, 创建和抛出异常的最佳标准做法, 即: 应该多关注异常的类型, 少纠结异常的错误消息。如果你有什么看法, 欢迎在这里留言, 或在 PHP 文档网页, 亦或是上面给出链接的ZF2 wiki 留言。


?


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Build kernel时make oldconfig、m.. 下一篇使用 x86 汇编实现 C# 的快速内存..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: