Re: Exception::getLine()
| From: | Jesse Schalken | Date: | Fri, 20 May 2016 02:13:00 +0000 |
| Subject: | Re: Exception::getLine() | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-93406@lists.php.net to get a copy of this message | ||
On Fri, May 20, 2016 at 4:35 AM, Rasmus Schultz <rasmus@mindplay.dk> wrote:
> This is inconsistent with at least JavaScript and C#, where the stack
> trace is populated at the throw site. (Probably others?)
>
I'm not sure about C#, but in JavaScript (Node.js):
function get_error() {
return new Error('my error');
}
function do_throw(e) {
throw e;
}
try {
do_throw(get_error());
} catch (e) {
console.log(e.stack);
}
results in:
Error: my error
at get_error (/home/jesse/src/test.js:2:12)
at Object.<anonymous> (/home/jesse/src/test.js:10:14)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:146:18)
at node.js:404:3
The top frame is the construction (get_error) and the site of the throw
(do_throw) doesn't appear in the stack at all.