【问题标题】:Should a stand-alone PHP class throw exceptions?独立的 PHP 类应该抛出异常吗?
【发布时间】:2013-03-01 14:44:36
【问题描述】:

我目前正在构建一个独立的 PHP 类,以使用一些自定义代码来包装 Instagram API,这些代码适用于我在公司从事的项目类型。当我开发我的代码时,我经常发现自己在写这样的 sutff:

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

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

【问题讨论】:

  • 为什么你认为独立的php类不应该抛出异常?我认为你的例子很好
  • @Kossel 我的问题是寻求一种更好的方法来处理这些情况,如果有的话。如果抛出异常没问题,我也可以。
  • 我知道,这是一个很好的做法。实际上@ajshort 已经发布了我想说的所有内容,哈哈。 :)

标签: php architecture


【解决方案1】:

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

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

此外,如果您使用@throws 标记对引发异常的方法进行注释,这对使用 IDE 的人非常有帮助。

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2019-01-27
    • 2014-05-02
    • 2011-05-06
    相关资源
    最近更新 更多