php:try catch/error冻结服务器脚本
我正在运行一个cronjob脚本,它在try/catch语句(在while循环中)中完全冻结。 捕获短语在记录错误(我放在那里)时起作用,但随后它完全冻结,没有任何输出。 在那之后,我只放了php:try catch/error冻结服务器脚本,php,try-catch,freeze,Php,Try Catch,Freeze,我正在运行一个cronjob脚本,它在try/catch语句(在while循环中)中完全冻结。 捕获短语在记录错误(我放在那里)时起作用,但随后它完全冻结,没有任何输出。 在那之后,我只放了echo“error”在捕捉器内,但不会输出并再次冻结。 添加模具时它会提示,脚本会按预期停止-但我希望捕获错误并继续脚本 while($rs = $res->fetch_assoc()) { try { $rc = new c_movie(); $re
echo“error”
在捕捉器内,但不会输出并再次冻结。
添加模具时代码>它会提示,脚本会按预期停止-但我希望捕获错误并继续脚本
while($rs = $res->fetch_assoc())
{
try
{
$rc = new c_movie();
$result = $rc->search();
} catch(Throwable $t)
{
echo "ERROR!!!!"; // freezing here, does not echo
}
}
知道是什么导致脚本冻结了吗?
谢谢我终于自己发现了。。我的代码使用的是get_headers(),这在尝试加载包含404的URL时导致了冻结。服务器似乎在缓存它并冻结,不会触发异常。非常奇怪。请共享相关代码-很难调试描述。要么您没有共享足够的代码,要么代码没有任何意义。您没有使用任何行外数据$rs
。还有,可能是因为$res->fetch_assoc()
只有一个结果吗?search
做什么?它有自己的内部循环吗?很难想象$rs=$res->fetch_assoc()
会产生一个无限循环。另外,您希望在哪里看到输出?如果是自动cron作业,则必须在文件中捕获它。或者,您是否在浏览器或CLI中手动运行脚本以对其进行测试?