独立的PHP类应该抛出异常吗?

时间:2013-03-01 14:44:36

标签: php architecture

我目前正在构建一个独立的PHP类来包装Instagram API,其中包含一些自定义代码,用于我在公司工作的项目类型。当我开发代码时,我常常发现自己写的是这样的sutff:

if (!$this->accessToken)
    throw new Exception("Instagram: Access Token can't be NULL", 1);

这是一种不好的做法吗?如果是这样,对这种情况的推荐方法是什么?

1 个答案:

答案 0 :(得分:4)

这是一种很好的做法,因为它允许使用您的库的人正确处理错误。当异常情况发生时(例如重要值为null)抛出异常总是一个好主意。

我可以建议使用更具体的异常类的唯一改进。对于这种情况,您可能想要抛出InvalidArgumentExceptionUnexpectedValueException。使用更具体的异常类意味着人们可以在catch块中更具体地检查该类。对于更复杂的应用程序,定义自己的异常类来处理特定的异常类型是一个好主意。

此外,如果您注释使用@throws标记抛出异常的方法,则对使用IDE的人员非常有帮助。