[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-nashorn-dev
Subject:    Re: Clean JavaScript stack trace
From:       "A. Sundararajan" <sundararajan.athijegannathan () oracle ! com>
Date:       2014-06-23 3:41:37
Message-ID: 53A79F21.803 () oracle ! com
[Download RAW message or body]

Yes, anything under "api" directory or sub-dir implements API and are 
considered fairly stable. Anything else is considered as internal

-Sundar

On Saturday 21 June 2014 01:06 AM, Greg Brail wrote:
> 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@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.
>>>
>>>
>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic