[英]How do you get the JavaScript stack trace from Nashorn?
我有一個在Chrome中工作得很好但在Nashorn崩潰的腳本:
(錯誤:名稱空間“com.cognitect.transit.util”已在第6欄第19664行聲明。
該錯誤不是很有用,因為該行包含:
throw Error('Namespace "' + name + '" already declared.');
我需要從Nashorn獲得一個完整的堆棧跟蹤,我找到了NashornException.getScriptStackString
但是Nashorn生成的錯誤是javax.script.ScriptException
類型,當我調用NashornException.getScriptStackString
時,它給了我一個空字符串。
如何從Nashorn獲取JavaScript堆棧跟蹤?
我不想從JavaScript中做到這一點,無論你運行什么JS代碼,我都希望以與瀏覽器相同的方式實現它。 很多我的JS代碼都是第三方,它是生成的,我無法修改我必須打印異常的數千個函數以防萬一。
該NashornException
可作為原因ScriptException
:
import jdk.nashorn.api.scripting.NashornException;
...
catch (ScriptException e) {
if (e.getCause() instance of NashornException)
String jsStackTrace = NashornException.getScriptStackString(e.getCause());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.