【发布时间】:2017-06-07 05:15:43
【问题描述】:
当我的 scala-js 代码抛出错误时,我想将合理的堆栈跟踪发送回我的服务器以放入日志中。 “明智的堆栈跟踪”是指提供 Scala 方法、文件名和行号的东西,而不是转译的 javascript 代码。
通过获取源映射并使用 Javascript 源映射库 (https://github.com/mozilla/source-map) 将堆栈跟踪的每个元素从 javascript 转换为相应的 Scala 代码,我取得了很好的进展。
我的问题:我需要引发错误但不知道如何获取它的 javascript 代码的列号。打印 StackTraceElement 的结果类似于
oat.browser.views.query.QueryRunView$.renderParamsTable$1(https://localhost:9443/assets/browser-fastopt.js:34787:188)
我需要行尾的“188”,但除了调用 toString 并解析结果之外,我不知道如何获取它。查看 StackTraceElement 代码,列号是一个私有变量,API 中没有任何东西可以访问它。
还有另一种我完全忽略的方法吗? scala-js 中内置的任何东西,可以将 javascript 堆栈跟踪转换为 Scala 堆栈跟踪?
【问题讨论】:
-
此代码在某处可用吗?我有兴趣自己使用它。
-
我在gist.github.com/bwbecker/e92324dc8875e10f44b5161c2515a186 提出了要点。请注意,这仍在进行中。我的注意力转移到了其他东西上,所以发布的代码仍然很粗糙。如果有用,那就太好了。欢迎提供反馈。
标签: scala.js