Hello Ard,

Monday, February 16, 2004, 9:51:51 PM, you wrote:

> Marcus Boerger wrote:

>> as i said before there is a reason for that: I played a long time with
>> exceptions until they became what they are right now. And and attempt
>> to increase the visibility of one of its members can be used to make it
>> SEGV. So i don't want more visibility. Also where is the reason? You can

> Correct me if I'm wrong, but are you saying that the concept of 
> extendable Exception methods in general was rejected because its current 
> implementation segfaults ? That feels kind of backwards to me ...

You are wrong. The point is i am not willing to risc unstabilites with
exceptions. This is a special class that heavily interacts with the executor
and facilities used even after exceution hence i must be sure several
intenal properties are in an exact and intact form at 100%.

>> read everything just fine and you can overload you exception to print out
>> better formatted output and whatever. The only place where you need to
>> change such member in derived classes is when you are using exceptions
>> as flow control. And duing so is violating exception rule number two. So
>> don't expect this to be changed.

> So we're back to

> try {}
> catch (MyException $e) {
>       do_something_with($e->myGetMessage());
> }
> catch (Exception $e) {
>       do_something_with($e->getMessage());
> }

> which totally defeats the purpose of subclassing Exception in the first 
> place. This has nothing to do 'violating the 10 commandments of exception'.
> Couldn't you replace this with a non-final implementation that calls a 
> private (== final in this case) method in the default implementation ?

No those are read access members to private property members. When you lok
at the exception class:
  php -r 'reflection_class::export("exception");'
then you'll encounter that you can overload __toString() and the
__construct(). Or in other words you should use 'print $e' or '(string)$e'
or '$e->__toString()'.


-- 
Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]

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

Reply via email to