2011-04-06 82 views
3

每当我尝试运行脚本时,都会收到以下奇怪的错误消息。“无法重写最终方法异常:: __克隆()”

我没有看到会导致问题的东西 - 事实上,我现在脚本中唯一处理异常的东西(它们是未来添加的构件)有以下几行:

class NoMatchingRouteException extends \RuntimeException { } 

class HandlerException extends \RuntimeException { } 

class HandlerMissingException extends HandlerException { } 

class HandlerInaccessibleException extends HandlerException { } 

这些是各种异常,形成我可以抛出的各种例外的树。

无处不在在这里,我曾经重写了Exception类的__clone魔术方法,所以我看不到问题出现在哪里。

我的理解是,我的问题可能很难回答 - 因此,如果您有任何想法,我应该查找问题以及我应该寻找的其他代码,请将它们发布评论和我会尽力答复尽快。

谢谢。

+0

你有没有得到完整的错误?它应该以“[文件名]行[行]”结尾......“ – Jacob 2011-04-06 03:29:48

+0

是的,我已经得到了完整的错误 - 事实上,我已经得到了一个完整的堆栈跟踪。不幸的是,这条线(第32行,在marathon.php中)仅仅指向了Marathon类的声明,它没有扩展任何内容。 – 2011-04-06 03:43:35

+0

你可以编辑你的帖子与有问题的班级吗?这里有一些奇怪的事情,我们需要看看实际的代码。 – Charles 2011-04-07 01:45:43

回答

0

当我改变了一些架构时,我设法摆脱了奇怪的错误(虽然不小心)。我同意这个错误是非常奇怪的,并且很想发布有问题的课程 - 不幸的是,我不能回复它(我知道,我知道。)。谢谢!

6

我有这个错误时,我错误地使用

包括

一个重写的异常类的两倍。

当我改回到include_once时,错误消失了。

+0

得到了在文件上使用require两次导致的完全相同的错误。通过require_once移除/替换require解决了这个问题。 – 2013-02-11 09:35:47

1

当您多次定义类时出现此错误。因此,避免在函数内部定义类,并使用require_once代替.inc文件。