Re: [RFC] Throwable Hierarchy Policy for Extensions
On Wed, Apr 30, 2025, at 1:06 PM, Tim Düsterhus wrote:
> Hi
>
> On 4/30/25 15:33, Larry Garfield wrote:
>> The only time I've seen anyone use $code is in TYPO3. Their coding standards say that
>> any time you throw an exception, you use the current timestamp (determined manually) as a code.
>> That way there is a globally unique code regardless of exception type that can be grepped to find
>> the exact line it came from.
>
> To my understanding this would result in effectively identical
> exceptions having different codes, just because checking the error
> condition is split across different if()
statements for readability?
> That doesn't seem like a good idea - and that's why the RFC uses “cause”
> as the wording of choice.
Correct. There's 400 throw new InvalidArgumentException('...',
123456798)
calls across the code base, each with a unique code number timestamp.
I didn't care for this approach either when I worked at TYPO3. :-) My point being that
I've rarely if ever seen $code used in a constructive and useful fashion.
>> […] just that it's the only time I've seen $code used in the wild...
>>
>
> PDO (for better or worse) also uses the $code
for the error code
> returned by the database. Unfortunately it also widens the (untyped)
> $code from int to string|int, which causes some issues, since folks only
> expect int, since Exception::__construct() types the $code
parameter
> as int
.
>
> Best regards
> Tim Düsterhus
In my experience, worse. But that's another topic.
--Larry Garfield
Thread (18 messages)