Clean JavaScript stack trace

Greg Brail greg at apigee.com
Fri Jun 20 19:36:57 UTC 2014


Thank you!

It's my understanding that the "jdk.nashorn.api.scripting" package is
considered fairly stable and using it my code is "OK," so I may use that
technique.


On Fri, Jun 20, 2014 at 9:22 AM, A. Sundararajan <
sundararajan.athijegannathan at oracle.com> wrote:

> You can evaluate:
>
> function getScriptTrace() {
>   try {
>      throw new Error();
>   } catch (e) {
>      return e.stack
>   }
> }
>
> in your script and call the same from java code using
> javax.script.Invocable.invokeFunction. ("stack" property and other
> related extensions are documented here: https://wiki.openjdk.java.net/
> display/Nashorn/Nashorn+extensions).
>
> Or if you're okay with nashorn specific extension, you can use this API
> from java code.
>
> public static StackTraceElement[] jdk.nashorn.api.scripting.
> NashornException.getScriptFrames(Throwable th)
>
> Hope this helps,
> -Sundar
>
> On Friday 20 June 2014 09:35 PM, Greg Brail wrote:
>
>> Is there a way in Nashorn or javax.script to get a clean JavaScript-only
>> stack trace (not a Java stack trace, but only containing JavaScript code)
>> out of an exception thrown by a script? I don't see anything in the
>> Nashorn
>> Wiki or javax.script -- apologies if I'm missing something there.
>>
>> For instance, I can get a full Java stack trace when my script fails, but
>> I'd like to ignore all the Java stuff and give users the stack trace that
>> they would get if they were running the "plain" JavaScript natively rather
>> than inside Java.
>>
>>
>


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


More information about the nashorn-dev mailing list