2013-04-25 160 views
1

我有一个非常简单的工厂方法,它根据传递给它的一些值和条件创建模型实例。工厂方法 - 抛出什么异常

什么我不确定是做什么如果工厂不能创建一个基于它receieves的配置模型实例。

第一个问题是,它应该返回false还是null?还是应该抛出异常?

如果它应该抛出一个异常应该是什么异常。林在PHP在这里工作(PHP例外列表http://php.net/manual/en/spl.exceptions.php

+1

抛出'InvalidArgumentException'将是我的建议 – 2013-04-25 16:17:15

回答

0

你是谁可以回答这个问题的唯一的人。应该发生什么不是在任何地方定义。

如果你问我,我宁愿抛出一个异常,如果你愿意,可以叫它YourFactory_ClassNotFoundException。这将使调用代码看起来更直接,因为它不需要测试返回值。


据我所知,因为我知道有在PHP核心函数和类这个以下共识:

  • false应由遇到一个错误,并且不抛出异常的方法被退回。 (并且没有布尔返回值,如is_file())。预计这些方法将设置errnoerrmsg,以使用户有机会获取错误消息。

  • 在这种情况下,一些较新的PHP类将抛出Exception。我更喜欢库代码的例外。如果它是一个没有return语句无效方法

  • null返回。这可能是有条件的

+0

我知道,在一定程度上,你是正确的。但是,对于这种情况如何被认为是最好的,必须有一些共识。感谢您的建议有关的例外 - IM thinkint那也最好在这一点 – 2013-04-25 16:20:32

+0

有无写了一封关于这几行。 – hek2mgl 2013-04-25 16:28:58

相关问题