Php CLI:捕获异常后冻结输出
在我的控制台脚本中,我用来显示批处理的进度。今天,有以下代码:Php CLI:捕获异常后冻结输出,php,command-line-interface,Php,Command Line Interface,在我的控制台脚本中,我用来显示批处理的进度。今天,有以下代码: $progressBar = new CliProgressBar(count($this->contracts)); foreach ($this->contracts as $contract) { echo $progressBar->drawCurrentProgress(); try{ $this->handleSingleContract($contract);
$progressBar = new CliProgressBar(count($this->contracts));
foreach ($this->contracts as $contract) {
echo $progressBar->drawCurrentProgress();
try{
$this->handleSingleContract($contract);
} catch (Exception $ex) {
$this->ungeneratedContracts[] = $contract;
}
}
奇怪的事情发生了。当循环命中异常时,它被捕获,循环继续运行,但输出被冻结,直到脚本结束,然后用大量不应该被缓冲的缓冲数据吹扫屏幕,这些数据在到达时显示。如何避免这种行为?捕获异常后,我是否可以清理缓冲区以使输出再次工作?为什么不在handleSingleContract调用后移动回显?