我有一个非常简单的工厂方法,它根据传递给它的配置的一些值和条件创建模型实例。
我不确定的是,如果工厂无法根据收到的配置创建模型实例,该怎么办。
第一个问题是,它应该返回 false 还是 null?还是应该抛出异常?
如果它应该抛出异常,这应该是什么异常。我在这里使用 PHP(php 异常列表http://php.net/manual/en/spl.exceptions.php)
我有一个非常简单的工厂方法,它根据传递给它的配置的一些值和条件创建模型实例。
我不确定的是,如果工厂无法根据收到的配置创建模型实例,该怎么办。
第一个问题是,它应该返回 false 还是 null?还是应该抛出异常?
如果它应该抛出异常,这应该是什么异常。我在这里使用 PHP(php 异常列表http://php.net/manual/en/spl.exceptions.php)
你是唯一能回答这个问题的人。应该发生的事情在任何地方都没有定义。
如果你问我,我宁愿抛出一个异常,YourFactory_ClassNotFoundException
如果你想调用它。这将使调用代码看起来更直接,因为它不需要测试返回值。
据我所知,AFAIK 在 PHP 核心函数和类中对此有以下共同共识:
false
应该由遇到错误且不抛出异常的方法返回。(并且没有类似的布尔返回值is_file()
)。这些方法预计会设置errno
并errmsg
让用户有机会获取错误消息。
在这种情况下,一些较新的 PHP 类会抛出异常。我更喜欢库代码的异常。
null
如果它是没有 return 语句的 void 方法,则返回。这可以是有条件的