在PHP中抛出NotImplementedError?

ber*_*kes 53 php exception

PHP中是否存在一种NotImplementedError?

我想将这些添加到一些存根方法和接口,以便警告扩展我的类,他们仍然有工作要做.或者这在PHP中有所不同?

Phi*_*hil 84

PHP没有内置功能,NotImplementedException但欢迎您创建自己的内置功能.我认为BadMethodCallException接近这将是一个体面的扩展候选人

class NotImplementedException extends BadMethodCallException
{}
Run Code Online (Sandbox Code Playgroud)

......以及你的方法

public function notImplementedMethod()
{
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

你也可以非常简单地做这样的事情

throw new Exception('Not implemented');
Run Code Online (Sandbox Code Playgroud)

  • 只是对好答案的改进:如果使用名称空间(PHP> = 5.3.0),请使用`\ BadMethodCallException`和`\ Exception`(使用_backslash_). (4认同)
  • 一个建议:`NotImplementedException`应该扩展[`\ RuntimeException`](https://php.net/manual/en/class.runtimeexception.php) (3认同)
  • @Wirone一个`RuntimeException`是一个错误"只能在运行时找到".对我而言,它更接近于'BadMethodCall`,因为作者应该知道不要调用该方法 - 它在运行时之前是可以确定的. (3认同)
  • 这场辩论毫无意义.实现可以扩展他们喜欢的任何东西,或者只是抛出一个简单的"异常".在这一点上,它完全基于意见 (3认同)
  • 如果作者应该知道不调用此方法,则抛出或扩展“LogicException”将是最合乎逻辑的。 (2认同)