Hi

On 4/27/25 23:16, Kamil Tekiela wrote:
The exception message MUST NOT be the only means of distinguishing
exceptions. Any two exceptions with different messages MUST be
identifiable either by a unique exception class name or code.

Thank you. I have used that as the basis for this change:

https://github.com/php/policies/pull/17/files/7f7bb9bd09f3883bd13a70d7f61abbc62bfe04a1..dd507261a61cf088d07d9bdca80d91dcc54daf8a

I've intentionally adjusted the wording to "different cause" rather than "different message" to avoid defining what constitutes a different message.

As an example, when the CSPRNG fails, we might want to emit different error messages depending on the CSPRNG driver (e.g. /dev/urandom vs the getrandom() syscalls), but it's not useful to distinguish these cases with a different code, since the user does not decide which driver is used and can't do anything useful with that information.

Even distinguishing between "/dev/urandom does not exist" and "/dev/urandom exists, but is a regular file instead of a character device" probably is only useful within the message itself, since neither is really recoverable from within PHP and allocating and documenting codes is likely work that helps no one.

Best regards
Tim Düsterhus

Reply via email to