簡體   English   中英

你如何從Nashorn獲得JavaScript堆棧跟蹤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM