适当使用例外?

时间:2009-11-28 00:53:24

标签: php exception

我们正在为专门的PHP应用程序开发一个集合类。其中包含名为mapeach等的函数

已经提出了一个关于调用一些错误参数的函数的争论。例如:

public function each($fn) {
    // ...
}

// ...

$collection->each('not a function');

each的调用是否会抛出异常?它应该返回null吗?我们应该忽略坏参数,并在尝试调用不存在的函数时让运行时错误吗?我不确定我们应该如何处理这种情况。

1 个答案:

答案 0 :(得分:3)

例外情况适用于特殊情况,而不是编码员。

使用断言代替。 见http://php.net/manual/en/function.assert.php

如果这是用于外部使用的库,那么暴露方法的异常可能有意义(例如InvalidArgumentException),但通常,断言更适合于在内部验证您的代码是否满足您的要求条件。

也许另一个例子将有助于澄清事情,在进行文件访问时很好地使用异常,并且由于服务器故障等原因可能无法访问资源。

另见Design by contract using assertions or exceptions?