独立PHP类是否应该抛出异常?

独立PHP类是否应该抛出异常?,php,architecture,Php,Architecture,我目前正在构建一个独立的PHP类,将Instagram API与我在公司工作的项目类型的一些自定义代码打包在一起。当我开发代码时,我经常发现自己在编写Sutf时是这样的: if (!$this->accessToken) throw new Exception("Instagram: Access Token can't be NULL", 1); 这种做法不好吗?如果是这样的话,对于这种情况,建议采用什么方法?这是一种很好的做法,因为它允许使用您的库的人正确处理错误。当发生异常

我目前正在构建一个独立的PHP类,将Instagram API与我在公司工作的项目类型的一些自定义代码打包在一起。当我开发代码时,我经常发现自己在编写Sutf时是这样的:

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

这种做法不好吗?如果是这样的话,对于这种情况,建议采用什么方法?

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

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


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

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

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


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

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