【发布时间】:2021-04-21 12:21:32
【问题描述】:
我正在运行一个 cronjob 脚本,该脚本完全冻结在 try / catch 语句中(在 while 循环中)。
标语正在起作用,因为它正在记录错误(我放在那里),但随后它完全冻结而没有任何输出。
之后我只将echo "error"; 放在catch 语句中,但它不会输出并再次冻结。
添加die; 时,它会提示并且脚本按预期停止 - 但我想捕获错误并继续脚本。
while($rs = $res->fetch_assoc())
{
try
{
$rc = new c_movie();
$result = $rc->search();
} catch(Throwable $t)
{
echo "ERROR!!!!"; // freezing here, does not echo
}
}
知道什么可能导致脚本冻结吗? 谢谢
【问题讨论】:
-
请分享相关代码 - 很难调试描述。
-
要么您没有共享足够多的代码,要么它没有任何意义。您没有使用行外的任何数据
$rs。另外,难道$res->fetch_assoc()只有一个结果吗? -
search是做什么的?它有自己的内部循环吗?很难想象$rs = $res->fetch_assoc()会产生无限循环。 -
另外,您希望在哪里看到输出?如果它是一个自动化的 cron 作业,你必须将它捕获到一个文件中。还是您在浏览器或 CLI 中手动运行脚本来测试它?