> Nothing to ridicule but there's a good reason that currently throw is a 
> statement. It has to do with us not being able to clean up properly when 
> we're within an expression as far as memory leaks, reference counting and 
> other locks are concerned.
>
Ah, that makes perfect sense.  With exit()/die() the request is ending so 
any mess can be cleaned up and tossed out.  With a throw, there's every 
liklihood that execution is going to continue.

> Theoretically your patch could be applied as it's not the worst thing 
> (there are other existing situations where such edge cases could be 
> triggered) but I think it's better to keep the current state. I'd also 
> have to check if there aren't actually real additional problems 
> (misbehaviors) that could occur.
>
I wouldn't doubt that there are real showstoppers hiding behind that 
behavior.  Probably surmountable ones, but not as trivial as they first 
appeared when I was looking at it.

> I must say that I am debating with myself on this issue as syntactically 
> it's nice but I'm worried of the implications. It requires some thorough 
> analysis.
>
Agreed.  Syntacticly it'd be nice if throw were consistent in this regard, 
but it absolutely needs to be approached cautiously.

-Sara 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to