【发布时间】:2013-07-07 21:59:33
【问题描述】:
编辑:从头开始重写,旧问题没有用
在递归中抛出异常后发生错误。
该异常不会在任何地方被捕获,它应该只是弹出并显示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 上成功失败。
当没有抛出异常时,In 在现实世界中运行良好。
但是当条件在现实世界中通过并抛出异常时,--- THROWING --- 会被打印出来,后面应该是uncaught exception,但它会疯狂地旋转并在一段时间后失败,从而产生time limit exceeded 错误。我确定会引发异常,并且我确定我不会在任何地方捕获异常。
【问题讨论】:
-
你能添加更多代码吗?不容易理解递归中发生了什么。
标签: php exception recursion runtime-error xdebug