Re: [RFC] Throwable Hierarchy Policy for Extensions

From: Date: Wed, 30 Apr 2025 20:12:55 +0000
Subject: Re: [RFC] Throwable Hierarchy Policy for Extensions
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-127257@lists.php.net to get a copy of this message
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

« previous php.internals (#127257) next »