昨天, 有同事在邮件组提了个问题:
> PHP应该什么时候使用 Exception ? 它的性能如何?
这个问题也算是一个久经争论的经典问题了. 我谈谈我的个人看法.
异常与之对应的错误码(或者状态码), 到底各自有什么优点, 缺点, 我们应该怎么使用呢?
错误码
首先来说, 异常机制是在错误码机制之后才出现的, 那么根据进化论, 异常自然是避免了错误码机制的一些不足. 这些不足包括.
1. 错误信息不丰富
函数, 只能有一个返回值(当然, Lua可以返回多个, 但其实也相当于在PHP中返回一个数组), 我们见过最多的函数说明就是: 成功时候返回***, 错误的时候返回FALSE, 然而一个函数出错我原因可能有多种, 出错的种类更有多种. 一个简单的FALSE, 并不能把具体的错误信息告诉调用者.
于是, 我们也就见过一些, 这样的函数说明: 如果返回值大于0, 则表示成功的状态码, 如果返回值小于0, 则表示出错的状态码.
然而, 这个要求函数是返回整形(或者数字), 对于一些其他函数, 我们并不能通过0, >0,