在php中,如何创建“只读”异常?

问题描述 投票:0回答:1

在 Php 中,我希望我的异常不可变:

readonly class MyImmutableException extends \Exception
{
}

如您所见,这是不可能的,它会导致致命错误,因为 \Exception 不是不可变的。 但我想让我的所有系统都不可改变,所以很糟糕

php immutability
1个回答
0
投票

你按照你尝试的方式去做。它是设计的一部分,在只读类的 RFC 的“继承”部分中提到过:

与重写只读属性的工作原理类似,只读类只能扩展只读父级。

所以你要么继承

\Exception

,要么拥有只读类。请注意,您可能不需要扩展异常 - 创建自己的只读基类可能就足够了,只要它实现 
\Throwable
 接口,就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.