Re: [VOTE] Allowing use of exceptions in the engine

From: Date: Sat, 07 Dec 2013 17:05:20 +0000
Subject: Re: [VOTE] Allowing use of exceptions in the engine
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-70521@lists.php.net to get a copy of this message
On Sat, Dec 7, 2013 at 1:57 PM, Nikita Popov <nikita.ppv@gmail.com> wrote: > Hi internals! > > I opened the vote on the "Exceptions in the engine" RFC: > > https://wiki.php.net/rfc/engine_exceptions#vote > > The vote has three options, "Yes", "No" and "Yes, without > E_RECOVERABLE_ERROR changes". The last option is a version of the proposal > without BC issues. > > Some further notes: > * I will not be including something like BaseException. Introducing it for > this purpose seems like bad design and will be very hard to get rid of in > the future. As the proposal (without recoverable errors) does not break BC > [1] even without it, I don't see a reason to introduce it. > * Some people suggest to use different subclasses of EngineException for > different error types. I'm not against that, but I think it's okay to do > that in a separate proposal, if someone can come up with a good selection > of exception classes. It's much easier (and does not break BC) to add > subclassing later, than to add suboptimal subclass types now and try to fix > something like the SPL exception mess later. > * The suggested uncaught exception error message change is just a bit of > cosmetics (and not directly related to this proposal), so I'd like to do > that separately. > > And regarding the vote: If you are in favor of the proposal in general, but > want to have it in PHP 6 rather than PHP 5.6, then vote "No" here. If it > fails now, someone can revive this once the time for PHP 6 has come. > > Thanks, > Nikita > > [1]: We don't have a formal definition for this, but it seems to be general > consensus that relaxing error conditions does not constitute a backwards > compatibility break. > personally I have seen catch-all blocks in the wild (try {//do something} catch(Exception $e) {//do nothing}), which would behave differently (and some of them would screw something up instead of terminating the app) if the EngineException is a subclass of Exception. I can see myself supporting this proposal for 5.6, if we can have it done in a truly BC-safe manner, but I can understand, if the required compromises for that would make the feature too "clunky", so maybe it would be better to introduce it in a major version. -- Ferenc Kovács @Tyr43l - http://tyrael.hu

« previous php.internals (#70521) next »