gpt4 book ai didi

php - 如何在 PHP 中追踪 "Exception thrown without a stack frame in Unknown on line 0"?

转载 作者:可可西里 更新时间:2023-11-01 13:14:00 27 4
gpt4 key购买 nike

我正在使用 PHP 处理一个大型(继承的)代码库,并且错误 Exception thrown without a stack frame in Unknown on line 0 已经开始出现在每个页面的底部。我理解错误的含义:在无法抛出的地方抛出异常。我什至设法在某种程度上追踪到了它——它发生在调用关闭函数期间。

我已经将日志记录到通过 register_shutdown_function 注册的所有函数中,但其中任何一个都没有发生。不幸的是,我似乎无法获得更多信息;我知道最后一个成功调用的关闭函数是什么,但我不知道在那个函数和错误发生点之间执行了什么代码。我什至不知道 PHP 机器的哪一部分正在调用最后一个关闭函数。它可能与日志记录框架、 session 框架或六种东西中的任何东西有关。

有谁知道如何查明错误发生的位置?

最佳答案

这可能发生在没有堆栈框架的析构函数和异常处理程序中。但由于该消息非常有用,您唯一的选择是尝试使用 echo 来查找错误(也许还有 ob_end_flush())。可能是析构函数正在抛出异常,或者正在调用抛出异常的函数。找到错误函数后,在异常抛出部分周围添加一个 try...catch。

请注意,如果您的框架使用自己的错误处理,您必须在 PHP 配置中关闭警告和通知。特别是如果你有类似 ErrorException 的东西,因为它将警告变成异常。

关于php - 如何在 PHP 中追踪 "Exception thrown without a stack frame in Unknown on line 0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662159/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com