php – 创建Exception子类时“Exception的参数错误”

这是我的代码

class MyException extends Exception
{
   public function __construct($message, $code=0, Exception $previous = null) {
   parent::__construct($message,$code,$previous);
  }
   public function __toString() {
   return __CLASS__. ":[{$this->code}]:{$this->message}\n";
  }
}

这是错误

Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) on line 5

在这条线上意味着

parent::__construct($message,$code,$previous);

出了什么问题?

最佳答案 正如评论中所述,并且在
the Exception constructor page上,$3.1中添加了$previous参数.

这反映在错误消息中:

Wrong parameters for Exception ([string $exception [, long $code ]])

PHP在确保构造函数完全匹配方面有点热心.例外是内部位的重要组成部分,让它们完全正确是值得迂腐的.

This code demo显示了较旧的PHP版本处理错误参数计数的各种方法.从上面使用的措辞来看,您使用的是PHP 5.1或5.2.

请注意,在撰写本文时(2014年2月),5.4之前的PHP版本已达到安全和错误修复更新的生命周期,并且计划在EOL in summer 2014中安装5.4.

如果可以,请确保在部署应用程序时使用的是现代版本的PHP.

点赞