如何抛出未实现的错误

时间:2012-10-30 14:40:09

标签: php error-handling

  

可能重复:
  Throw a NotImplementedError in PHP?

在编写基类时,我经常逐渐开发,只构建我需要的东西(或者我正在测试的东西)。但我喜欢我的界面要平衡。每个吸气者都是一个二传手。当实现CRUD时,即使现在,我只需要R,我宁愿为CUD写入存根。

我希望这些抛出一些Not Implemented Exception。我怎样才能提出这样的错误或例外?

例如:

class Resource {
  /**
   * get Issues a GET-request to Online, fetch with $this::$id
   * @returns $this
   */
  protected function get() {
    if ($this->id) {
      $attributes = http_build_query(array("id" => $this->id));
      $url = "{$this->url}?{$attributes}";
      $options = array_merge(array('method' => 'GET'));
      $response = _http_request($url, $options);
      $this->parse($response);
    }
    return $this;
  }

  /**
   * post Place a new object on Online
   *
   * @param $attributes ....
   * @returns Source $this
   */
  protected function post($attributes = array()) {
    throw new NotImplementedError();
  }

  /**
   * put Updates an object on Online
   *
   * @param $attributes ....
   * @returns $this
   */
  protected function put($attributes = array()) {
    throw new NotImplementedError();
  }

  /**
   * delete Removes an object from Online, selected by $this::$id.
   * @returns $this
   */
  protected function delete() {
    throw new NotImplementedError();
  }
}

3 个答案:

答案 0 :(得分:1)

看看上一个答案:Throw a NotImplementedError in PHP?

非常简单地说,PHP中不存在,但您可以通过扩展现有的Exception轻松创建自己的。上一个答案建议使用BadMethodCallException来执行此操作:

class NotImplementedException extends BadMethodCallException
{}

然后,您可以在代码中抛出NotImplementedException。

答案 1 :(得分:0)

您可以throw new NotImplementedException() - 就像Symfony API中的this one一样。

答案 2 :(得分:0)

我认为你有两种可能性:

  1. 从异常类派生并实现not implemented exception,您可以抛出。
  2. 将未实现的方法定义为abstract。然后编译器将生成错误。不要忘记将整个基类标记为抽象。