编辑:重写从零开始,旧的问题没有用php在递归中抛出异常超过执行时间
我在递归中抛出一个异常后发生错误。 这个异常不会被任何地方发现,它应该弹出并显示uncaught exception error
,它不会。相反,它会产生time limit hit
种错误。如果我将var_dumps放入代码中,它看起来像抛出了异常,但它会在超过限制后冻结并失败。
这是递归函数的一部分:
if($this->prvky[$iA]->ini < 1 || $this->prvky[$iB]->ini < 1){
echo '--- THROWING ---';
throw new \OutOfBoundsException('ini is smaller than 1');
}
它运行在测试中非常精细,异常可能抛出,如果它是,它成功地将失败的uncaught exception
。
在没有发生异常情况下,在现实世界中运行良好。
但是,当条件在现实世界的通行证,并抛出异常,--- THROWING ---
被印刷,这之后应uncaught exception
,而是它旋转关闭疯狂失败了一段时间后,产生time limit exceeded
错误。我知道肯定会抛出异常,并且我确信我不会在任何地方捕捉异常。
你能增加更多的代码吗?不容易理解递归中发生了什么。 – flogvit