获取gremlin-groovy脚本中的异常的行号或完整堆栈跟踪

时间:2012-02-14 03:26:28

标签: exception groovy graph-databases gremlin

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

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

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

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

1 个答案:

答案 0 :(得分: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