About the Error
在没有堆栈帧的情况下引发异常
意味着某人的代码在不允许抛出异常的地方抛出异常。例如,不能在对象的析构函数中引发异常。这是一个很好的例子in the php docs.
简而言之,如果您有一个异常处理程序(注册于set_exception_handler
如果在it中抛出一个异常,就会出现错误,您会看到上面这样的错误消息。
或者,假设您有一个错误处理程序(注册于set_error_handler
它可以将警告和其他内容转换为ErrorException
\'s、 然后在析构函数的某个位置意外使用了未定义的变量。相同的结果:在不可能引发异常的情况下引发异常。
Tracking It Down
这个问题可能不会发生在WordPress核心中,所以我会在您的插件和主题中开始搜索。查找呼叫
set_exception_handler
或
set_error_handler
. 如果您已经进入命令行,可以使用以下工具
ack 或grep:
$ ack "set_(error|exception)_handler"
然后,您可以开始查找抛出异常的实例。查找
throw
关键字和see引发wehre异常。
$ ack throw
如果所有其他方法都失败了,并且你找不到这个问题的来源,那么开始停用插件和主题,直到它消失为止。显然,你不能在管理员中使用主题区域的插件列表表,因此你需要进入并通过FTP重命名插件文件/文件夹以停用它们。你可以对主题做同样的事情。一次做一个,直到问题消失。然后重新激活插件,看看它是否会回来。