Getting file names on stack traces.

Greg Brail greg at apigee.com
Mon Apr 21 20:02:49 UTC 2014


Let's say that I have some JS code like this:

(function(foo) {
  throw new Error('Sorry, ' + foo);
})

and I execute it by reading it into a String variable, then executing it
using ScriptEngine.eval(string), and then I call the function later, either
from Java directly or from some other JS code.

Right now, in Nashorn, I see that the stack trace of my exception will
include the entry:

"<eval>:2"

to indicate the "file name" and line number of my error.

I would like instead to stick in a file name so that the file name appears
instead of "<eval>". Is there a way for me to do that?

I did try setting the property "ScriptEngine.FILENAME" on my script
context, but that seems to be a global context. It works the first time I
run the script, but if I call the function later on from inside another
script, the file name doesn't "stick" to the code.

I can provide an example if I need to, but is there anything you guys can
think of that I can do in order to get a file name to stick to this
function for the purpose of stack traces?

-- 
*greg brail* | *apigee <https://apigee.com/>* | twitter
@gbrail<http://twitter.com/gbrail>


More information about the nashorn-dev mailing list