Hello Dan,
Sunday, October 12, 2003, 7:34:59 AM, you wrote:
> This behaviour isn't a show stopper. It's just the inconsistency that
> bugs me.
yes!
> I'm left wondering what other ways the engine might handle my exceptions
> that
> I might not expect, like...
> try {
> function __autoload($x) { throw new Exception(); }
> $foo = new bar();
> }
> catch (Exception $e) { print('caught exception'); }
> The exception will never be caught in this case (resulting in the same previous
> error). A PHP engine developer might look at that and say something like "oh, of
> course it doesn't. The engine removes the special __autoload function from the
> main try/catch block at compile time." Now try explaining why it would do this to
> your average PHP user. ;)
Yes, that's a valid point that goes to you. But this can be delayed until
after PHP 5 release right?
> Luckily, using a try/catch block *inside* the __autoload function works fine. Its
> just
> not at all able to pass the exception on up the chain. Meaning people need to keep
> in mind that any and all objects/methods/etc. which could throw exceptions that may
> have been called from inside their __autoload function will only get those exceptions
> passed as high as the autoloader for handling instead of their main code.
> If this is intended behaviour, then this is just a recommendation for a note in the
> future documentation of __autoload.
As said lat's delay and document it. Maybe someone finds an appropriate nice
solution later. Feel free to make this a documnetation bug.
--
Best regards,
Marcus mailto:[EMAIL PROTECTED]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php