1

我有一个 gremlin-groovy 脚本,它遍历一个非常嘈杂的数据库。有很多案例缺少边缘或属性。当我假设一个边缘或属性存在并且它没有抛出异常时,我得到一个非常简单的输出,如下所示:

javax.script.ScriptException: java.util.IllegalFormatConversionException: d != java.lang.String

我想这样当脚本遇到致命异常时,如上所述,它提供堆栈转储或至少一个行号,以便我可以调试它发生的位置,类似于 java 如何打印完整的堆栈跟踪关于致命的例外。

关于如何获得更好的转储的任何建议?

4

1 回答 1

0

我建议为此使用 Gremlin 终端。

gremlin$ ./gremlin.sh

         \,,,/
         (o o)
-----oOOo-(_)-oOOo-----
gremlin> a bad thing
No such property: bad for class: groovysh_evaluate
Display stack trace? [yN] y
groovy.lang.MissingPropertyException: No such property: bad for class: groovysh_evaluate
    at     org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)

如果您没有这种奢侈(例如通过 REST 服务器),那么您可能希望在您的遍历中放置一些智能“printlns”。

my.long.traversal.sideEffect{println 'I am here'}.is.very.long
于 2012-02-15T00:10:31.577 回答