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