我找不到可靠的来源来确保我能在 __destruct()
中抛出异常。
这是 PHP 文档中的说明:
试图从析构函数(在脚本终止时调用)中抛出异常会导致致命错误。
但是当我测试时:
class A
{
public function __destruct()
{
throw new \Exception();
}
}
try {
$a = new A();
} catch(\Exception $x) {
var_dump($x);
}
看起来这不是真的。我通常可以抛出和捕获异常。那么,为什么文档上有这一行呢?
在Mark Baker的回答后编辑:
实际上它是有效的,析构函数可以抛出并捕获异常。我仍然不确定为什么文档会撒谎。
$a
,它会抛出异常。 - Mark Baker