Re: Exception::getLine()

From: Date: Fri, 20 May 2016 09:06:05 +0000
Subject: Re: Exception::getLine()
References: 1 2 3 4 5 6  Groups: php.internals 
Request: Send a blank email to internals+get-93411@lists.php.net to get a copy of this message
On 20/05/2016 08:22, Niklas Keller wrote:
2016-05-20 4:13 GMT+02:00 Jesse Schalken <me@jesseschalken.com>:
The top frame is the construction (get_error) and the site of the throw (do_throw) doesn't appear in the stack at all.
The comparison with JavaScript isn't a good one, since you can throw everything in JS. If they didn't provide the stack trace upon throw, you would not have a stack trace at all if you throw a plain string.
That explanation justifies completely the opposite behaviour to what Jesse described. According to MDN [1] the "stack" property is completley unstandardised, and some engines may indeed populate it on throw, but there's no hint on that page that they'll attach it to anything not constructed as an Error. So it's not a great comparison for either side (note that it was originally brought up by Rasmus as an example where it *does* come from the throw site) because the language doesn't actually guarantee you a stack trace at all. [1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack Regards, -- Rowan Collins [IMSoP]

« previous php.internals (#93411) next »