Karoly Negyesi | 17 Jun 2012 21:06

[PHP-DEV] How hard should PHP try to finish a script?

Hi,

PHP often throws fatal errors when it could throw an exception.

Take  PHP Fatal error:  Non-abstract method foo::bar() must contain
body this error for example. It would be possible to mark this class
as 'invalid' instead and when doing a new foo , throw an exception. Or
if you try really hard then only the method call should throw an
exception.

Or, I was extending ReflectionClass and got Fatal error:
ReflectionClass::getFileName(): Internal error: Failed to retrieve the
reflection object  (same happens if you try serialzie / unserialzie on
ReflectionClass as a comment in the manual points out). I could argue
this is an exception and not a fatal.

Let me quote documentation:

Fatal run-time errors. These indicate errors that can not be recovered
from, such as a memory allocation problem. Execution of the script is
halted.

I do not see the above or , indeed , most of fatals I see this sort of
error. Sure, if a malloc call fails, the world has ended and it's time
to die. Otherwise, could we just get an exception so that it can be
handled ?

Thanks

Karoly "chx" Negyesi
(Continue reading)

sam.e.giles | 17 Jun 2012 21:13
Picon
Gravatar

Re: [PHP-DEV] How hard should PHP try to finish a script?

Hi,

I think the example of the abstract method not containing a body is a bad example, as it is fatal and would
normally be caught at compilation in a compiled language.  I think these sorts of errors shouldn't be
catchable, although, I can see instances where it could be a useful interface but it is only for some edge
cases such as loading some concrete implementation that your script has no prior knowledge about, if it's
incorrect your application can't recover, but this can be avoided anyway I think.

Sam
Sent from my BlackBerry® smartphone

-----Original Message-----
From: Karoly Negyesi <karoly <at> negyesi.net>
Date: Sun, 17 Jun 2012 12:06:03 
To: <internals <at> lists.php.net>
Subject: [PHP-DEV] How hard should PHP try to finish a script?
Hi,

PHP often throws fatal errors when it could throw an exception.

Take  PHP Fatal error:  Non-abstract method foo::bar() must contain
body this error for example. It would be possible to mark this class
as 'invalid' instead and when doing a new foo , throw an exception. Or
if you try really hard then only the method call should throw an
exception.

Or, I was extending ReflectionClass and got Fatal error:
ReflectionClass::getFileName(): Internal error: Failed to retrieve the
reflection object  (same happens if you try serialzie / unserialzie on
ReflectionClass as a comment in the manual points out). I could argue
(Continue reading)

John LeSueur | 17 Jun 2012 23:31
Picon

Re: [PHP-DEV] How hard should PHP try to finish a script?

On Sun, Jun 17, 2012 at 1:06 PM, Karoly Negyesi <karoly <at> negyesi.net> wrote:

> Hi,
>
> PHP often throws fatal errors when it could throw an exception.
>
> Take  PHP Fatal error:  Non-abstract method foo::bar() must contain
> body this error for example. It would be possible to mark this class
> as 'invalid' instead and when doing a new foo , throw an exception. Or
> if you try really hard then only the method call should throw an
> exception.
>
> Or, I was extending ReflectionClass and got Fatal error:
> ReflectionClass::getFileName(): Internal error: Failed to retrieve the
> reflection object  (same happens if you try serialzie / unserialzie on
> ReflectionClass as a comment in the manual points out). I could argue
> this is an exception and not a fatal.
>
> Let me quote documentation:
>
> Fatal run-time errors. These indicate errors that can not be recovered
> from, such as a memory allocation problem. Execution of the script is
> halted.
>
> I do not see the above or , indeed , most of fatals I see this sort of
> error. Sure, if a malloc call fails, the world has ended and it's time
> to die. Otherwise, could we just get an exception so that it can be
> handled ?
>
> Thanks
(Continue reading)


Gmane