Hello Marcus, Hum... you fixed the issue but not really in the way I expected it. Now my code does not work...
My message was not only to report a bug, but to ask *not* to fix it as expected. Particularly to put the "trace" member as protected, (or "getTrace()" as virtual and not final). Remember my code: <? class SystemException extends Exception { function __construct($message, $code) { parent::__construct($message, $code); // Hide trace of handler() call. array_splice($this->trace, 0, 1); $this->file = $this->trace[0]['file']; $this->line = $this->trace[0]['line']; } static function handler($code, $message) { throw new SystemException($message, $code); } } set_error_handler(array('SystemException', 'handler')); ?> Indeed, I'm no more able to modify the trace, so if I want to report the real file and line (I mean the interresting ones, so those in trace[1]), they won't be coherent with the back trace. Why could you accept a derived class to modify "file" and "line" members, and not the "trace" one? My original message was also to limit the use of private and final modifiers, as they go against inheritance. Regards, Stephane -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php