On 16/05/2015 19:44, Levi Morrison wrote:
On Sat, May 16, 2015 at 12:28 PM, Stanislav Malyshev
<smalys...@gmail.com> wrote:
Hi!
There's nothing that prevents us from reneging on that by another
vote. If it's a bad decision backed by logical arguments then we can
That's a pretty big if, given that your only argument - that it is a BC
break - is incorrect, as in fact the set of exceptions caught before and
after change is exactly the same, and the only difference is that in the
new code, you can *also* catch errors, the option that you didn't have
before. Absent that argument, there's no reason to renege.
You are incorrect. The set of exceptions that `catch (Exception)`
catches is all exceptions by its definition. By altering it to no
longer include all exceptions means the semantics of it changed.
Do you agree with these statements?
- There is no exception which a program using "catch ( Exception $e )"
will catch under PHP 5 but not under PHP 7 (with BaseException/Throwable
as proposed).
- There is no fatal error which becomes non-fatal for such a program,
because they will become uncaught EngineExceptions, and failure to catch
an exception is a fatal error.
- There is no non-fatal error which becomes fatal for such a program,
because EngineExceptions exist only where there were already fatal errors.
Leaving aside "definitions" and "semantics", where, then, is the BC break?
Regards,
--
Rowan Collins
[IMSoP]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php