像这样的 php 脚本会发生什么?
class FooException extends Exception
{
public function __construct() {
throw new FooException;
}
}
可能与
相同while (TRUE) {
new Exception();
}
当超出执行时间时,它只是超时,或者因某些 fatal error 而失败?
最佳答案
在第一种情况下,什么也不会发生,因为您从未构造异常。
在第二种情况下,不会抛出异常,因此您只会得到一个普通的无限循环。
但是,如果您通过在末尾添加此行来修改第一个示例:
throw new FooException();
它会导致无限循环,最终耗尽所有内存:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 44 bytes)
关于php - 构造函数中无限抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837053/