On Wed, May 13, 2015 at 9:38 AM, Sebastian Bergmann <[email protected]>
wrote:
> Am 13.05.2015 um 08:30 schrieb Pierre Joye:
> > Why don't you do it? You have access and you are a very good writer.
> > No big C knowledge required either in this case :)
>
> There was/is consensus on what I proposed back in February:
>
> * Introduce a Throwable interface
> * Let Exception implement the Throwable interface
> * Introduce an Error class that implements the Throwable interface
> * Use Error class as base class for exceptions raised by the engine
>
> But as simple as the above sounds it is complicated (at least for
> me) to implement (properly). Here's what I was able to come up with:
>
> https://github.com/php/php-src/pull/1274
>
> This should give us the following:
>
> interface Throwable {}
> abstract class BaseException implements Throwable {}
> class Exception extends BaseException {}
> class Error extends BaseException {}
> class EngineError extends Error {}
> class ParseError extends Error {}
> class TypeError extends Error {}
>
> I am not sure whether we still want the abstract BaseException
> class. I left it in because I couldn't figure out how to remove
> it without breaking Exception and Error.
>
> Added my comments inline on the PR :-)
Julien