Re: Are exceptions allowed in php core?

From: Date: Fri, 31 Aug 2012 12:47:04 +0000
Subject: Re: Are exceptions allowed in php core?
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-62604@lists.php.net to get a copy of this message
On Thu, Feb 24, 2011 at 10:29 AM, Ferenc Kovacs <info@tyrael.hu> wrote: > Hi. > > it was mentioned multiple times on the list, that exceptions from php core > is prohibited. > do we have some documentation about this? > the more detailed email on this topic was from Lukas: > > http://www.mail-archive.com/internals@lists.php.net/msg43237.html > > > "Generally we have decided to leave Exceptions out of core with a few > "exceptions": > > 1) errors in the constructor will throw an exception > 2) extensions may choose to offer an Exception mode (see PDO) > > I never understood why we did 1), if a constructor can fail, then a > factory should be used instead. But oh well. With 2) you are obviously also > opening a pandoras box, that is similar to using a global error handler > that turns all Notices, Warnings etc as Exception: you can easily break > code that calls various libraries .. take for example passing in a PDO > instance to one library which expects the normal error mode and another one > that enables the Exception mode. For the most part however we can conclude > that most libraries enable the Exception mode in PDO and I think you will > be hard pressed to find any PDO code example that doesn't assume that the > Exception mode is enabled. " > > every other mention about this topic is in-general prohibits the usage of > exceptions. > ^Á‡ñ | > ¿ > {±ìÓ]ãep“>Æå¢èhttp://www.mail-archive.com/internals@lists.php.net/msg44159.html > > so I would like to know, that what is the current situation, and do these > mails still holds true. > maybe things has changed. > > Tyrael > Sorry for bringing up this thread, but based on the recent mails from Derick it seems to me that there is/was some agreement that core features shouldn't throw exceptions. http://www.mail-archive.com/internals@lists.php.net/msg60631.html http://www.mail-archive.com/internals@lists.php.net/msg60635.html It was also mentioned in that thread that we already have a bunch of exceptions in spl, and some of the spl features should be in the core (or it is already in the core for example IteratorAggregate). Personally I think that OOP features should be allowed to throw Exceptions, and I think that it would still in line with the our users expectations. The only problem that I can think of is that for some stuff, we have both a procedural and an oop API, but I'm not proposing turning everything into Exceptions, but using them where appropriate.

« previous php.internals (#62604) next »