无法覆盖最终方法Exception :: getPrevious()

时间:2015-02-12 09:25:51

标签: php

我有CMS并尝试安装它,但当我尝试登录时出现错误

无法覆盖最终方法Exception :: getPrevious()

Fatal error: Cannot override final method Exception::getPrevious() in C:\wamp\www\uis-online\application\exceptions\applicationException.php on line 41

anyboy是否知道导致此错误的原因

此文件中的代码是

class ApplicationException extends Exception
{
    protected $innerException;
    /**
     * Konstruktor
     * @return unknown_type
     */
    public function __construct($message, $code = 0, Exception $innerException = null)
    {
        parent::__construct($message, $code);

        if (!is_null($innerException))
        {
            $this->innerException = $innerException;
        }
    }
    public function getPrevious()
    {
        return $this->innerException;
    }

    // custom string representation of object
    public function __toString() {
        $exceptions_message = "";
        if($this->innerException != null && $this->innerException->getMessage() != "") {
            $exceptions_message = $this->innerException->__toString();
        }

        return $exceptions_message .__CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }
}

1 个答案:

答案 0 :(得分:2)

如文档中所示,您尝试覆盖的方法是最终方法。

final public Exception Exception::getPrevious ( void )

http://php.net/manual/en/exception.getprevious.php 根据PHP手册,您无法覆盖最终方法。

  

PHP 5引入了final关键字,它通过在final中添加前缀来阻止子类覆盖方法。如果类本身被定义为final,则无法扩展。

http://php.net/manual/en/language.oop5.final.php